mcp-canon
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANON_DB_PATH | No | Path to custom database | Bundled DB |
| CANON_LOG_JSON | No | Output logs in JSON format | false |
| CANON_LOG_LEVEL | No | Log level (DEBUG, INFO, WARNING, ERROR) | INFO |
| CANON_EMBEDDING_DIM | No | Embedding vector dimensions (must match model) | 768 |
| CANON_EMBEDDING_MODEL | No | Fastembed model name | nomic-ai/nomic-embed-text-v1.5-Q |
| CANON_FASTEMBED_THREADS | No | ONNX runtime threads for FastEmbed (lower = less RAM, slower) | auto |
| CANON_FASTEMBED_PARALLEL | No | FastEmbed data-parallel workers (>1 increases RAM usage) | disabled |
| CANON_FASTEMBED_BATCH_SIZE | No | Embedding batch size during indexing (lower = less RAM, slower) | 256 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_best_practicesA | Semantic search for best practices across all guides or within a specific guide. Use this tool when:
IMPORTANT: Always formulate queries in English for optimal search quality, even if the user's question is in another language. Args: query: Natural language search query in English. Be specific and descriptive. guide_id: Optional guide ID to search within (e.g., 'python/django-security'). If provided, searches only within this guide (returns top 3 sections). If not provided, searches across all guides (returns top 5 results). namespace: Filter by technology (e.g., 'python', 'go'). Ignored if guide_id is set. Returns: Relevant chunks with content and source information |
| search_suitable_guidesA | Find guides that match a task description. Use this tool when:
IMPORTANT: Always formulate queries in English for optimal search quality, even if the user's question is in another language. Args: query: Description of the task or goal in English namespace: Filter by technology Returns: Top 3 matching guides with descriptions |
| read_full_guideA | Get the complete content of a guide. Use this tool when:
Warning: Large guides (>20k chars) will be truncated. Use consult_guide_for_task for specific sections. Args: guide_id: Guide ID (e.g., 'python/fastapi-production') Returns: Full guide content or table of contents if truncated |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| code_review | Review code against Canon's best practices or a specific guide. Use this prompt when: - You want to review code for adherence to best practices - You have a specific guide to check against (provide guide_id) - You want to search for relevant patterns (leave guide_id empty) |
| implement_feature | Get a step-by-step implementation plan following best practices. Use this prompt when: - You want to implement a feature correctly from the start - You have a specific guide to follow (provide guide_id) - You want to search for relevant guides (leave guide_id empty) |
| compare_approaches | Compare two architectural approaches using Canon's knowledge base. Use this prompt when: - You need to choose between two approaches - You want an objective comparison based on best practices - You're evaluating trade-offs |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: read_full_guide retrieves full guide content, search_best_practices performs semantic search within guides, and search_suitable_guides finds guides matching a task. No overlap in functionality.
All tools follow a consistent verb_noun snake_case pattern: read_full_guide, search_best_practices, search_suitable_guides. The naming is predictable and clear.
With only 3 tools, the server feels slightly minimal but still covers core operations for a guide and best-practices domain. It's reasonable for a focused server.
Significant gaps exist: there is no tool to list all available guides, and the read_full_guide tool truncates large guides while referencing a missing 'consult_guide_for_task' tool. This creates dead ends for agents.