dnomia-knowledge
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a clearly distinct function: project listing, search, local indexing, graph traversal, file reading, URL ingestion, and lifecycle management. There is no meaningful overlap in purpose even though some tools touch related data.
Naming Consistency2/5Tool names mix conventions: index_project and read_file are verb_noun, project_info and graph_query are noun_verb, search is a bare verb, and lifecycle is a noun only. While all names are readable and snake_case, there is no predictable pattern across the set.
Tool Count5/5Seven tools is a well-scoped size for a knowledge management server, covering indexing, retrieval, graph exploration, and state management without unnecessary redundancy. Each tool earns its place.
Completeness4/5The core knowledge lifecycle is covered: ingestion via index_project/fetch_and_index, retrieval via search/read_file, graph access, and state changes via lifecycle. A notable gap is the absence of any deletion/removal tool for projects, chunks, or indexed content.
Average 3.8/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the incremental reindex option and the path requirement, but does not state whether indexing is destructive, whether it replaces or merges an existing index, whether it requires authentication or network access, or how long-running the operation might be. For a mutating tool, these are notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well structured: a one-sentence purpose followed by bulleted argument explanations. Every sentence adds value, and the purpose is front-loaded. No redundant or filler language is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so describing return values is unnecessary. However, the description omits behavioral details that would help an agent call the tool correctly, such as whether the index is rebuilt from scratch or merged, whether existing data is deleted, and when a full reindex would be needed instead of incremental. It also gives no usage guidance relative to the sibling tools. These gaps keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does completely. It explains that path must be an absolute project root and must contain .md/.mdx files, and defines incremental as 'only reindex changed files' with its default. This adds essential meaning beyond the bare string and boolean types in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Index or reindex a project's content and code') with a concrete resource and a modifier that distinguishes it from the sibling tools (e.g., project_info, search). It lacks explicit sibling differentiation, but the verb and resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—when you need to index/reindex a project—but provides no explicit context, exclusions, or comparison to alternatives like fetch_and_index. The path precondition (must contain .md/.mdx files) is the only usage hint, and no guidance on choosing between incremental and full reindex beyond the default is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal the main conditional behavior: chunks for indexed large files, raw fallback for non-indexed files. Still, it leaves gaps around what counts as 'large', what happens when query is omitted, and how query behaves for non-indexed files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-line summary, a short conditional behavior statement, and a clear Args list. Every sentence earns its place, with no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core behavior and parameter semantics are covered well, and an output schema apparently handles return-value details. However, important operational context is missing: the threshold for 'large', behavior when query is absent on an indexed file, and guidance on how this differs from using search. This is adequate for straightforward use but incomplete for edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. It explains all three parameters meaningfully: file_path must be absolute, query finds relevant sections in large files, and project defaults to auto-detection from the file path. This goes beyond the bare schema names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a file reader with index-aware chunking: it reads files, returns relevant chunks for indexed large files, and falls back to raw reading for non-indexed files. This is a specific verb-resource pairing that is distinguishable from siblings like search or index_project, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is appropriate by describing behavior for indexed vs. non-indexed files and by mentioning query for relevant sections. However, it does not explicitly say when to prefer a sibling tool such as search instead, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. 'List' strongly implies a read-only operation and 'with stats' hints at the returned information, but the description does not explicitly state that no modifications occur, nor does it mention any permissions or side effects. This is adequate for a simple listing tool, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one front-loaded sentence plus a single parameter explanation. Every sentence adds value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and an output schema, the description is nearly complete. It tells the agent how to request all projects or a specific one, and the output schema covers return values. It doesn't elaborate on edge cases or alternative tool routing, but nothing critical is missing for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the parameter's semantic meaning: 'project: Specific project ID, or None for all projects.' This goes beyond the schema's type/default information and clarifies the all-vs-specific behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'List registered projects with stats.' The parameter line clarifies that it can target one project or all projects. It doesn't explicitly distinguish itself from siblings, but the resource and action are specific enough that an agent can generally identify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear structural usage guidance: pass a project ID or None for all projects. However, it does not explain when this tool should be preferred over siblings like search or graph_query, and it provides no when-not-to-use guidance. Usage is implied rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral context. It does convey the hybrid search behavior, the ability to search linked projects, and optional full-content display. Still, it does not disclose aspects like result ordering, pagination semantics, environment variable requirements, or any operational caveats beyond the implied read-only nature of search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence summary is front-loaded and immediately informative, and the Args list is compact yet covers all 8 parameters without unnecessary filler. Every line adds value and no information is redundantly repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8-parameter complexity and the presence of an output schema, the description is largely complete: it explains all inputs, the scoped knowledge domain, cross-project search, and filtering options. It could be stronger by explicitly addressing how this tool relates to graph_query or noting any setup prerequisites, but nothing critical is missing for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does by explaining every parameter: query text, domain values, project defaulting to an env var, cross-project behavior, limit, language, file pattern, and content display. The only minor issue is that the project default is described as env var-based while the schema says default null, introducing slight ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Hybrid semantic + keyword search across project knowledge,' giving a specific verb and resource. It does not explicitly differentiate itself from sibling tools like graph_query, but the word 'search' and the hybrid semantic/keyword detail make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when searching across project knowledge, and the parameter list hints at filtering and cross-project scenarios. However, it does not explicitly state when to use this tool versus graph_query or other siblings, nor does it provide exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the multi-step behavior, the persistence of indexing, and the consequence that content becomes searchable. It also reveals the default project derivation from the URL domain, which is useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the core behavior is front-loaded, the key post-condition follows, and the parameter explanations are minimal but sufficient. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and an output schema, the description covers the necessary operational context: what it does, what happens afterward, and what each parameter means. The main gap is the lack of explicit relationship or routing guidance relative to sibling tools like index_project, but this does not prevent an agent from calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives meaningful explanations for both parameters: url is the source to fetch and index, and project is the project ID with a default derived from the URL domain. This adds real value beyond the bare schema types, though it could be slightly more explicit about accepted URL formats or project ID constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action sequence: fetch URL content, convert to text, and index for searching. It also identifies the post-condition that content becomes searchable. However, it does not explicitly differentiate itself from the sibling index_project, leaving a small ambiguity gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied rather than explicit: the tool is obviously for fetching and indexing a URL so it can later be searched. It mentions the search tool as a downstream consumer, but gives no guidance on when to choose this over index_project or other siblings, and no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does usefully reveal behavior: neighbors is a BFS traversal, communities uses Louvain groups, and depth is bounded to 1-3. On the other hand, it does not explicitly state that querying has no side effects, nor does it mention potential costs, permissions, or error behavior for missing required parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and uses a clear argument list where each line adds essential semantic information. There is no redundant restating of types or schema defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the description explains all modes and parameters, the tool is largely self-contained for invocation. It falls slightly short of a 5 by not explicitly addressing whether the modes are mutually exclusive or what happens when both chunk_id and project are supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does so thoroughly. It explains the meaning and role of every parameter, including conditional requiredness (chunk_id for neighbors, project for communities) and the valid depth range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with the specific verb 'Query' and resource 'the knowledge graph', and the parameter list adds two distinct modes (neighbors/communities) that clarify what the tool does. It does not explicitly distinguish itself from the sibling tool 'search', so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear conditional usage context: chunk_id is required for neighbors mode, project is required for communities mode, and depth applies to neighbors mode. However, it does not explicitly explain when to prefer this tool over alternatives such as 'search' or 'project_info', nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly distinguishes read-only inspection ('info') from mutations ('reinforce', 'supersede', 'restore'), states that reason is 'stored on the event', and explains the meaning of delta as 'manual reinforcement'. This is solid behavioral transparency for a tool of this complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the core purpose in one sentence and then uses a compact, scannable argument list with no fluff. Every line adds necessary semantic information and nothing is repeated from the schema without purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and multiple mutation modes, the description adequately covers operation semantics, action-specific requirements, and parameter meaning. The presence of an output schema covers return-value expectations. It would be slightly stronger with an explicit note about consequences of destructive actions like supersede or restore, but the current text is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero property descriptions, so the description is the only source of parameter meaning. It explains all five parameters: chunk_id target, action allowed values, new_id obligation for supersede, delta as confidence adjustment with default, and reason as free text stored on the event. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific action ('Inspect or mutate') and a specific resource ('schema v4 lifecycle state for a chunk'), so an agent immediately knows what the tool does. The explicit action list further disambiguates it from the sibling tools, which deal with search, indexing, and file reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the four lifecycle actions and the condition requiring new_id for supersede, which tells the agent what operations are available. However, it does not explicitly state when this tool should be preferred over siblings like index_project or graph_query, nor does it mention excluded scenarios. The usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/ceaksan/dnomia-knowledge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server