Canon MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canon MCPList all available domains in the context repository."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Canon MCP
The serving layer for Canon governed context repositories. Reads a canon-context-accelerator
repo at runtime and exposes its domain knowledge to AI agents over the MCP protocol, executing
DAX and SQL queries under the user's identity via Entra OBO.
canon-context-accelerator (context layer)
domains/<slug>/*.yaml,*.md ──git read (60s TTL)──► canon-mcp (this repo)
_compiled/_index.json single container
_compiled/bundles/<domain>.md 6 MCP tools
.canon-cache/<d>/<connector_id>/schema.json OBO → FabricArchitecture invariant: the image carries code, not content. Anything a serving path reads must be readable from git at runtime. Content changes are a push, not a redeploy.
Tools
Tool | Description |
| List all Canon domains from the compiled index |
| Full grounding bundle for a domain (call before any query) |
| Compose and execute SUMMARIZECOLUMNS DAX server-side (governed) |
| Raw DAX escape hatch — requires justification, logged |
| Governed SQL fallback against warehouse connectors |
| Diagnostics: UPN, OBO health, config completeness |
Related MCP server: Volterra Knowledge Engine
Environment variables
Repo pointer (required for remote mode)
Variable | Description |
|
|
| GitHub org / ADO org |
| Repository name |
| PAT with read:contents scope |
| Branch to read from (default: |
| ADO org name (ADO only) |
| ADO project name (ADO only) |
Auth (required for HTTP mode)
Variable | Description |
| Entra tenant ID |
| App registration client ID |
| Client secret (for OBO token acquisition) |
| Public HTTPS URL of this server (used in OAuth metadata) |
Transport / runtime
Variable | Description |
| HTTP port (default: |
|
|
| Local path to context repo (local/stdio mode only) |
Env vars carry secrets and repo-pointer config only — never topology.
Workspace IDs, dataset IDs, and connector topology come from scan-config.yaml
in the context repo, not from environment variables.
Local / stdio mode
CANON_REPO_ROOT=/path/to/canon-context-accelerator \
CANON_MCP_TRANSPORT=stdio \
uv run python -m serving.mcp.serverHTTP / Container App mode
CANON_REPO_PROVIDER=github \
CANON_REPO_OWNER=YourOrg \
CANON_REPO_NAME=canon-context-accelerator \
CANON_REPO_TOKEN=ghp_... \
CANON_AUTH_TENANT_ID=... \
CANON_AUTH_CLIENT_ID=... \
CANON_AUTH_CLIENT_SECRET=... \
CANON_MCP_BASE_URL=https://your-container-app.azurecontainerapps.io \
uv run python -m serving.mcp.serverDevelopment
uv sync --extra dev
uv run pytest
uv run ruff check .CI runs ruff check + pytest on every PR via .github/workflows/test.yml.
Two-repo contract
canon-mcp consumes these artifacts from the context repo (never baked into the image):
Artifact | Produced by | Used for |
|
|
|
|
|
|
| humans + scan |
|
| humans | few-shot grounding in bundle |
| humans |
|
| humans | connector resolution |
|
| model schema, dim profiles |
Changing any of these shapes is a coordinated two-repo migration.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jonvoge/canon-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server