Content
# MCP Server
A project to query the Presbyterian Church's constitution using a local MCP Server. The server is read-only and does not use HTTP server, remote calls, database, LLM, or embeddings.
[](LICENSE)
[](https://www.python.org/)
[](https://modelcontextprotocol.io)
## Connecting to AI
Prerequisites: [uv](https://docs.astral.sh/uv/) and Python 3.11+.
### Claude Code Plugin (Simplest)
In Claude Code, add the following two lines. The GitHub repository is installed as is, so no separate vault path setting is needed.
```console
/plugin marketplace add addmirer144/PROK-constitution-mcp
/plugin install prok-constitution
```
After installation, restart Claude Code to expose the `search_constitution`, `get_constitution`, `get_related`, and `verify_citation` tools.
### Other MCP Clients (Claude Desktop, Cursor, etc.)
After distribution on PyPI, you can run it with one line of `uvx` without cloning. The vault is bundled with the package, so no `--vault` specification is needed.
```json
{
"mcpServers": {
"constitution": {
"command": "uvx",
"args": ["constitution-mcp"],
"env": { "PYTHONDONTWRITEBYTECODE": "1" }
}
}
}
```
Alternatively, after cloning the repository, use the following JSON. Change the path to an absolute path matching the clone location.
```json
{
"mcpServers": {
"constitution": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/PROK-constitution-mcp/mcp_server",
"constitution-mcp",
"--vault",
"/absolute/path/to/PROK-constitution-mcp/vault"
],
"env": { "PYTHONDONTWRITEBYTECODE": "1" }
}
}
}
```
For detailed tool descriptions and local execution methods, see [mcp_server/README.md](mcp_server/README.md).
## Configuration
- `mcp_server/`: Python MCP server, CLI, tests, and package settings
- `vault/`: Generated constitution Markdown vault
- `constitution_converter/`, `scripts/`: Vault regeneration tools
For MCP server usage, see [mcp_server/README.md](mcp_server/README.md).
## Distribution Criteria
Distribution candidates must pass the following commands:
```console
PYTHONDONTWRITEBYTECODE=1 uv run --directory mcp_server pytest -q
uv run --directory mcp_server ruff check src tests
uv run --directory mcp_server basedpyright
uv lock --directory mcp_server --check
```
When uploading to Git, `.venv`, `.obsidian`, `.omo`, `.DS_Store`, cache, and build outputs must be excluded.
## Data and License
The code is distributed under the MIT license. The original text-derived data in `vault/` has a separate license from the code, and you must verify the original source and redistribution permissions before public redistribution. For details, see [DATA_POLICY.md](DATA_POLICY.md).
## Unofficial Guide
The responses from this project are unofficial local query results to help with original text search. They do not replace the official interpretations, legal advice, or disciplinary judgments of the Church or Council.