molmcp
Allows indexing and querying capabilities from GitHub repositories, enabling LLM agents to discover code structure, symbols, and relationships via the discovery engine.
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., "@molmcpfind a function that downloads a file from URL"
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.
MolMCP
Multi-plane MCP for the MolCrafts ecosystem.
Protocol: MCP 2026-07-28 via FastMCP 4.0.0b5 (+ MCP Python SDK v2). Handshake-era clients still work — FastMCP 4 negotiates per connection.
Optional science packages (molvis, molq, molexp, …): if not installed,
that plane is omitted from catalogs and client configs (silent). Explicit
molmcp serve <plane> still errors with an install hint. This is runtime
behavior — not a test skip.
molmcp serve (no plane) starts the molcrafts core and FastMCP-mounts
enabled providers into that one process (molvis_open, molq_list_jobs, …).
molmcp init <host> writes that one MCP entry and the usage skill.
--disable molcrafts errors; --disable molq omits that mount.
Command | Role |
| Composed core + provider mounts |
| Debug: vis-only process, bare |
| User-level skill + MCP JSON |
Science APIs are never MCP tools. Discover them on molcrafts (packages →
open), then call them from agent Python or molvis_exec.
Client config (default: everything)
One standard mcpServers JSON, which every host reads — Claude Code and
Cursor natively, Grok alongside its own config.toml.
molmcp init grok # skill + composed serve
molmcp init grok --disable molq --disable molexp
molmcp init grok --disable molq --enable molq # re-enable after a disable
molmcp init claudeHost is required (grok, claude, cursor, codex). JSON is one
molcrafts entry running molmcp serve, with --disable flags for omitted
mounts. Tool ids look like molcrafts__molvis_open.
In Grok,
~/.grok/config.tomloutranks the JSON sources. If an old molmcp entry lives there it still wins —grok inspectshows each server's origin.
Related MCP server: agentmako
Configuration
Settings live in ~/.molmcp/settings.json, edited through the CLI. There are
no environment variables.
molmcp config list # resolved settings + layers
molmcp config set sources.molpy pkg:molpy # index a package
molmcp config set indexWorkspace true --project # index this repo too
molmcp config add excludes vendor
molmcp config remove sources.molpyA project may carry .molmcp/settings.json (checked in) and
.molmcp/settings.local.json (untracked); both layer over the user file.
Writes go to the user file unless --project / --local is passed, because a
plane server inherits its working directory from whichever client launched it.
What gets indexed. Auto-discovery finds installed MolCrafts distributions.
The working directory is not a source unless indexWorkspace says so — it
used to be, which meant an unconfigured install indexed whatever it happened
to be started next to.
Key | Meaning |
| Extra sources to index, |
| Index the working directory as well (default |
| Narrow which indexed sources the knowledge tools surface |
| Extra ignore globs for the file walk |
| Where the index lives and how big it may get |
| Environment to auto-discover from (a venv root, python, or site-packages) |
| Force a distribution in or out of auto-discovery |
| Provider-specific paths |
molcrafts.json is no longer picked up from the working directory; pass
--config PATH if you keep one.
CLI
uv run molmcp planes # list planes
uv run molmcp init grok # skill + MCP config
uv run molmcp config list # resolved settings
uv run molmcp route "draw dopamine"
uv run molmcp serve # composed core + mounts
uv run molmcp serve molvis # debug one plane
uv run molmcp search "Conformer" # offline index search
uv run molmcp index
uv run molmcp cache # index size; --prune / --gc / --vacuum to reclaimInstall
uv sync --extra dev
uv run pytest -vDesign rules
FastMCP composition —
molmcp serveis molcrafts + namespaced mounts.Bare register, namespaced mount — a provider registers
open; the stack exposesmolvis_open. Debugmolmcp serve molvisstill showsmolvis__open.No science tool mirror — no
show_smiles/draw_dopamine; discovery + Python.Providers register via
molmcp.providersentry points.No environment switches — configuration is settings and CLI flags, so
molmcp config listis the whole truth.
Documentation
Full manual: docs.molcrafts.org/molmcp
(sources in docs/):
Local sources: docs/concepts/architecture.md, docs/guides/molvis-workbench.md.
Available Tools
9 toolscomposeComposeBRead-onlyIdempotent
Bind packages + suggest + explore/open pages into one budgeted pack.
sources is intersected with knowledgeScope when set.
| Name | Required | Description | Default |
|---|---|---|---|
| refs | No | ||
| task | No | ||
| sources | No | ||
| budget_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, idempotent, non-destructive), the description discloses a concrete behavioral trait: sources is intersected with knowledgeScope when set. This adds useful operational context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose and followed by a critical operational caveat. No filler or redundancy; every sentence contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four undocumented parameters, no usage guidance, and an output schema that does not compensate for input semantics, the description is incomplete. An agent could guess the overall purpose but would not know how to set refs or task, or how budget_chars affects the composed result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameter meaning. It only mentions 'sources' and indirectly hints at 'budget_chars' through 'budgeted pack'; 'refs' and 'task' remain completely unexplained, leaving the agent without enough information to populate the inputs confidently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description identifies a specific composite action: binding packages, suggestions, and explore/open operations into a single budgeted pack. This clearly differentiates it from individual siblings like search, suggest, and open, though the phrase 'explore/open pages' is somewhat informal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when multiple operations should be combined into one budgeted pack, but it does not explicitly state when to use it versus calling the sibling tools individually, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infoInfoARead-onlyIdempotent
Ops/health view of sources and registry (not the main discovery path).
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds only a conceptual Ops/health framing and a discovery exclusion, not operational behaviors like scoping or result characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key purpose, and the exclusion is in parentheses so the core message is immediate. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter tool with rich annotations and an output schema, the description gives enough positioning: Ops/health, sources and registry, not the discovery path. A small gap is the meaning of 'workspace' and what 'sources and registry' refer to, but the schema and output schema fill part of that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the optional 'workspace' parameter or how it affects the result. The parameter name is somewhat self-explanatory, but the description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as an 'Ops/health view of sources and registry,' which conveys a clear subject and scope. It also distances itself from 'the main discovery path,' helping an agent distinguish it from search-oriented siblings like search and suggest, though it does not name a specific alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this is not the main discovery path, which tells an agent when not to use it and suggests discovery is handled elsewhere. The wording provides clear context for an ops/health use case, though it does not explicitly point to a sibling for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_planesList PlanesARead-onlyIdempotent
List the core connection and optional provider planes.
Each row has id, serve_command, when_to_connect,
tools_hint, and disableable. molcrafts is always on;
only provider planes can be dropped from a client config.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint, idempotentHint, and destructiveHint, covering safety profile. The description adds valuable behavioral context beyond annotations: it explains that molcrafts is always on and only provider planes can be dropped, which informs the agent about data invariants. No contradiction with annotations; the added context is relevant and useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose. The first sentence states what it does; the second explains row structure and a key rule. Every sentence contributes to understanding, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with an output schema (not shown), the description provides sufficient context: it enumerates the fields of each row and clarifies the distinction between core and provider planes. An agent can call this tool without ambiguity about inputs or expected outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the baseline is 4 per the rubric. The description doesn't need to explain parameters; however, it does describe the output fields, which indirectly clarifies what the tool returns. No compensation needed for missing parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'the core connection and optional provider planes' with a distinct resource and scope. It differentiates from siblings by specifying the exact content, and the name 'list_planes' aligns with the purpose without tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any sibling tools, conditions for substitution, or context that would help an agent decide between list_planes and other operations. The information given is purely descriptive, lacking explicit usage or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openOpenARead-onlyIdempotent
L2 symbol page: signature, doc, examples, tests (inject before coding).
Miss → ok=false / SYMBOL_NOT_FOUND. Empty examples are honest zeros.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| include_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds valuable context beyond annotations: miss responses return ok=false/SYMBOL_NOT_FOUND, and empty examples are meaningful rather than missing data. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: two sentences that front-load the core purpose and timing, then add failure and edge-case semantics. Every sentence earns its place with no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the core purpose, timing, failure behavior, and empty-example semantics, while annotations and output schema cover safety and return shape. However, the undocumented parameters remain a notable gap: the agent is left guessing what format ref should take and what include_source controls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation, but it does not. The meaning of 'ref' is only loosely implied by 'L2 symbol page', and 'include_source' is completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as opening an 'L2 symbol page' with signature, doc, examples, and tests, which is much more specific than the generic title 'Open'. It still lacks an explicit verb and does not differentiate from siblings like info or outline, but the resource and contents are clearly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use context with 'inject before coding', telling the agent when to invoke it. It also documents the miss behavior, but it does not state when not to use this tool or explicitly compare it to sibling tools such as search or outline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
outlineOutlineBRead-onlyIdempotent
L1 module directory for one source (optional path prefix).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Optional path/module prefix to narrow the tree. | |
| source | Yes | Name from packages. | |
| top_symbols_limit | No | Max sample symbols per module in the page. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only, idempotent, non-destructive behavior, so the description's burden is lower. It adds a small amount of scope context ('one source', 'optional path prefix') but does not explain the meaning of 'L1' or how top_symbols_limit affects results. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded; every word earns its place. It is not a perfect 5 because it is a sentence fragment and depends on the unexplained 'L1' abbreviation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full schema descriptions, annotations, and an output schema, this is minimally adequate. It lacks usage guidance and contextual semantics around what 'L1' means and what the returned directory/page actually contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only echoes the 'optional path prefix' from the schema and adds no additional meaning for source or top_symbols_limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('module directory'), the scope ('for one source'), and a key option ('optional path prefix'). However, it is a noun phrase rather than an explicit verb+resource statement, and 'L1' is unexplained, leaving some ambiguity about exactly what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose outline over sibling tools like info, packages, or list_planes. 'for one source' hints at scope but does not state conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
packagesPackagesARead-onlyIdempotent
L0 directory page: every package + summary for context injection.
Read the markdown (or data.packages[].summary) and choose sources yourself — this is a catalog, not a ranking.
With knowledgeScope set, only those packages appear.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral details beyond those: it is a catalog page for context injection, includes every package plus summary, is not a ranked result, and is scoped by knowledgeScope. This gives the agent a clearer behavioral model of what the tool returns and how to treat the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The second and third lines add meaningful guidance about treating the output as a catalog and about knowledgeScope filtering. Slight jargon like 'L0 directory page' costs a little clarity but does not seriously hurt the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only directory tool with an output schema and rich annotations, the description conveys the essential information: what is returned, how to use it, and what changes when knowledgeScope is set. It could be more explicit about the exact output shape, but the presence of an output schema reduces that burden. Minor ambiguity about where knowledgeScope comes from prevents a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description mentions knowledgeScope as a scoping influence, which gives additional semantic context even though it is not a declared schema parameter. There is no param ambiguity to resolve since the input schema is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states this is a directory page listing every package with a summary, which clearly identifies it as a catalog/list operation rather than a search or detail view. It uses resource-specific language (packages, data.packages[].summary) that distinguishes it from sibling tools like info or outline, though it lacks an explicit verb like 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: read the markdown or summaries and choose sources yourself, emphasizing this is a catalog rather than a ranking. It also explains behavior when knowledgeScope is set. It does not explicitly name sibling alternatives or state when not to use it, but the 'not a ranking' guidance and knowledgeScope condition provide meaningful selection cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routeRouteARead-onlyIdempotent
Which optional provider plane(s) to connect for task.
Routing only — no science. molcrafts is already this connection. Do not invent domain MCP tools for chemistry APIs.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to restate those. It adds useful behavioral context: this tool only routes and does not perform science, and it warns against inventing tools. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The additional sentences about routing-only and not inventing tools are purposeful guardrails. It is slightly cryptic but contains no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's role and key constraints, and an output schema exists, but the task parameter semantics are underspecified. An agent may understand the routing concept yet still lack enough detail to invoke it correctly with real task values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the 'task' parameter, but it only mentions '*task*' without defining what values it accepts, expected format, or how it determines routing. This is a meaningful gap for a single required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's function: decide which optional provider plane(s) to connect for a task. It also disambiguates itself with 'Routing only — no science' and warns against inventing domain MCP tools, which helps separate it from science/chemistry-related siblings. However, 'provider plane(s)' is left somewhat vague and no sibling is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: when routing/connecting provider planes, not for doing science. The note 'molcrafts is already this connection' implies a condition where routing may not be needed, and 'Do not invent domain MCP tools for chemistry APIs' is an explicit exclusion. It does not name alternative sibling tools, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearchCRead-onlyIdempotent
Index helper: find refs (prefer after packages/outline, with source=).
Source symbols are evidence only. executable=true only for Molexp bind.
sources is intersected with knowledgeScope when set.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | all | |
| path | No | ||
| kinds | No | ||
| limit | No | ||
| query | Yes | ||
| sources | No | ||
| namespaces | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful behavioral context: 'Source symbols are evidence only', 'executable=true only for Molexp bind', and 'sources is intersected with knowledgeScope when set'. These go beyond annotations, but the phrasing is technical and ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, which is efficient, but the cryptic phrasing (e.g., 'Molexp bind', 'evidence only') makes it less communicative than a clearer, slightly longer explanation would be. It is not front-loaded in a way that aids quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 0% schema coverage, and an output schema present, the description is insufficient for an agent to correctly call the tool without external context. It doesn't explain parameter formats, defaults, or the meaning of 'knowledgeScope', leaving critical gaps for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0% and 7 parameters, the description must compensate for the missing schema documentation. It only touches on 'sources' (via 'source=' and the intersection note) and leaves mode, path, kinds, limit, and namespaces completely unexplained. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as an 'Index helper' to 'find refs', which gives a specific verb and resource, but it doesn't clarify what kind of references or how they differ from siblings like 'outline' or 'packages'. The purpose is distinguishable from 'info' or 'suggest' but the wording is cryptic and assumes domain knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'prefer after packages/outline, with source=' which is a clear recommendation about when to use it relative to siblings, and hints at a required parameter. However, it doesn't explicitly state when NOT to use it or when alternatives are better, leaving the guidance incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggestSuggestARead-onlyIdempotent
Optional shortcut: which package pages to read for task.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, non-destructive behavior. The description adds only that this is a shortcut for page selection and does not explain what the result set looks like; no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler; every word adds either scope or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has one required parameter, an output schema, and annotations covering safety/behavior. The main remaining gap is the lack of an example or clarification of what a task looks like, but for its complexity the definition is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage and just names `task` as a string. The description clarifies that `task` is the input driving the page suggestions, which is meaningful, but it does not specify format or expected phrasing; this partially compensates for the empty schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool recommends which package pages to read for a given task, naming a concrete resource and purpose. It does not explicitly contrast with any sibling tool, so it lacks the sharp differentiation seen in the best definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optional shortcut' implies this is a convenience alternative to a fuller workflow, and 'for *task*' describes the trigger. However, there is no explicit when-to-use or when-not-to-use guidance relative to siblings like search or packages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v0.6.1- First observed
compose - First observed
info - First observed
list_planes - First observed
open - First observed
outline - First observed
packages - First observed
route - First observed
search - First observed
suggest
TDQS
The main exploration tools are explicitly layered (packages/outline/open), and info/list_planes/route are separated by role. Search, suggest, and compose have closely related purposes, but their descriptions distinguish ref-finding, package-page recommendation, and bundling, so an agent can usually select the right one.
Tool names mix bare nouns (info, packages, outline, open) with verbs (compose, search, suggest, route) and one snake_case verb_phrase (list_planes). There is no consistent verb_noun convention or common prefix, making the surface feel ad hoc despite the underlying hierarchy.
Nine tools is well within the ideal scope for a server of this complexity. Each tool has a distinct function in the discovery, search, composition, health, and routing workflow, with no obvious redundancy.
The browse (packages/outline/open), search, suggest, compose, health, and plane-routing flows form a complete read-only discovery workflow. The only minor gap is the lack of a raw package/registry detail view beyond info and open, but agents can still accomplish the core task.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted code graph over MCP: exact callers, dependencies, and cross-repo blast radius for AI agents.
251Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Graph-native persistent memory for AI agents — 33 MCP tools, zero-LLM writes.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceSemantic code indexer with GraphRAG knowledge graph. Index your codebase, search in natural language, and expose everything via MCP so AI agents understand architecture — not just files.462Apache 2.0
- AlicenseBqualityAmaintenanceLocal-first codebase intelligence engine providing AI coding agents with a typed MCP toolset for understanding and navigating code repositories.10051Apache 2.0
- AlicenseNot gradedqualityAmaintenanceProvides code intelligence for AI coding agents by indexing repositories into a hybrid knowledge graph, enabling agents to query dependencies, impact, and context through 28 MCP tools.3Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to query a codebase as a knowledge graph, providing token-budgeted context, search, and impact analysis via MCP tools.MIT
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/MolCrafts/molmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server