Skip to main content
Glama

xmp4 — Semantic code knowledge for your stack

Server Details

OSS libs in your stack, really used: source, tests, callers. C#, Java, TS, Python, Rust, PHP+.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
0ics-srls/lsai-xmp4.public
GitHub Stars
0
Server Listing
xmp4

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.6/5 across 16 of 16 tools scored. Lowest: 2.7/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct aspect of code analysis (call graph, usages, dependencies, text search, type hierarchy, etc.) with clear descriptions, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tools follow the same `xmp4_<noun_or_verb>` pattern with underscores, using simple and predictable names throughout.

Tool Count5/5

16 tools is well-scoped for a semantic code knowledge server, covering essential operations without being excessive or sparse.

Completeness5/5

The tool surface covers all major code analysis needs (symbol lookup, callers/callees, usages, tests, hierarchy, source browsing, project discovery) with no obvious gaps.

Available Tools

16 tools
xmp4_calleesAInspect

Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states the core functionality without disclosing behavioral traits such as error handling when a symbol is not found, pagination behavior, or any prerequisites. This minimal disclosure is insufficient for confident tool invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences that state the purpose and provide a usage hint. No extraneous words or redundant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description lacks detail on result format and how to interpret output. It does not explain how parameters like page, file_path, or output_format affect behavior, leaving gaps for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all 7 parameters described in the input schema. The description adds no further parameter semantics beyond what is already in the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'find' and the resource 'direct callees (methods called by) a symbol in a project.' It effectively distinguishes the tool from siblings like xmp4_callers by specifying the direction of the call relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage hint: 'Navigate step-by-step by calling xmp4_callees again on interesting results.' This implies iterative exploration but does not explicitly state when not to use the tool or mention alternatives like xmp4_callers for inverse relationships. However, the context is clear enough for basic guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_callersAInspect

Find direct callers of a symbol in a project. Navigate step-by-step by calling xmp4_callers again on interesting results.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description bears full burden. It discloses the purpose (direct callers) and iterative use, but omits details like output structure, error handling, or performance characteristics. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action, no fluff. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description is minimal. It lacks details on return format, pagination behavior, or disambiguation strategies beyond the iterative hint. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds no parameter-specific meaning; it merely repeats the function name. No extra context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it finds 'direct callers of a symbol', which is specific and distinct from siblings like xmp4_callees (callees) and xmp4_usages (all usages).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests iterative use by calling again on results, providing practical guidance. However, it does not explicitly mention when to use alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_depsCInspect

List external dependencies of a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
page_sizeNoResults per page (default 20, max 100)
output_formatNoOutput format: Compact (default) or Verbose
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. The one-sentence description only states the purpose, omitting whether the operation is read-only, requires authentication, pagination details, or any side effects. This is a severe gap for a tool with 4 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (5 words), effectively front-loading the core action. It is well-structured for quick parsing. A 5 would require slightly more detail without losing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is insufficiently complete. It fails to describe return format, pagination behavior, error handling (e.g., multiple project matches as hinted in the project parameter description), or any side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the tool description does not need to repeat those. The schema already explains the project matching heuristic, pagination, and output format. However, the tool description adds no additional insight beyond the schema, earning a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('list') and resource ('external dependencies of a project'). It is specific enough to distinguish from sibling tools like xmp4_callees (internal callers) or xmp4_grep (text search). A 5 would require specifying what constitutes 'external dependencies'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., xmp4_callees, xmp4_search). It does not mention prerequisites, context, or when it should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_grepAInspect

Server-side regex text search over indexed project source files. Free tier: requires file_path (single file). Premium tier (XMP4_PREMIUM_GREP_WALK=true): allows file_glob multi-file walk. Prefer xmp4_tests_for/xmp4_usages for SCIP symbols — grep is for text not indexed (comments, literals, config keys).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
patternYesRegex pattern (case-insensitive by default)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_globNoOptional file glob for multi-file walk (premium tier). Set XMP4_PREMIUM_GREP_WALK=true to enable.
file_pathNoSingle-file grep target, repo-relative (e.g. 'src/foo.rs'). Required in free tier.
page_sizeNoResults per page (default 20, max 100)
max_resultsNoMaximum number of hits to collect before pagination (default 50, max 1000)
case_sensitiveNoIf true, search is case-sensitive (default false)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavior. It does so by describing the free and premium tiers, the environment variable toggle, and the server-side nature. It lacks details on error handling or rate limits, but for a search tool, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only 3 sentences, front-loading the purpose and then providing tier and usage guidance. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, no output schema, no annotations), the description covers the essential aspects: purpose, tier model, sibling differentiation, and project parameter usage. It could mention pagination behavior, but that's partly covered by schema. Overall, highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters have descriptions. The tool description adds high-level context (tiers, environment variable) but does not provide additional detail beyond what the schema already offers for individual parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states a specific verb ('regex text search') over a well-defined resource ('indexed project source files'). It also distinguishes from sibling tools like xmp4_tests_for and xmp4_usages, making the scope clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs. alternatives: 'Prefer xmp4_tests_for/xmp4_usages for SCIP symbols — grep is for text not indexed (comments, literals, config keys).' It also explains free vs. premium tiers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_guideAInspect

Usage guide for xmp4 tools — read this first to learn the correct workflow

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states that this tool provides a 'usage guide' and should be used to 'learn the correct workflow', indicating it is a read-only, informational tool. Since no annotations are provided, the description carries full burden and adequately conveys the non-destructive, educational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the tool's purpose and usage guidance without any waste. It is front-loaded with the key term 'Usage guide' and immediately tells the agent to read it first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this tool has no input parameters, no output schema, and no annotations, the description is perfectly complete. It tells the agent everything needed: that it's a guide to be read first. Nothing is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so the description doesn't need to explain any. The schema description coverage is 100%, and the task of a guide with zero params is inherently self-explanatory. The description adds no param info because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states this is a 'usage guide' that should be read first to learn the correct workflow, clearly distinguishing it from other xmp4 tools. The verb 'guide' and the resource 'workflow' make the purpose immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to 'read this first', providing clear guidance on when to use this tool (before other tools) to learn the correct workflow. This effectively guides the agent's usage order among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_hierarchyCInspect

Get type hierarchy (base, interfaces, derived) for a symbol in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose any behavioral traits beyond the basic operation. It does not mention read-only status, side effects, rate limits, or output format limitations. The schema descriptions compensate for parameters but not for behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that succinctly states the tool's purpose. It is efficient, but could benefit from minimal structural improvements like a brief usage note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters and no output schema, the description is insufficient. It does not explain what the output looks like, whether results are paginated, or how the optional parameters interact with the result. Given the complexity, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter descriptions in the schema are detailed (e.g., project parameter with disambiguation, page_size with limits). The tool description itself adds no additional parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a type hierarchy (base, interfaces, derived) for a symbol, which is a specific and distinct purpose among sibling tools like info, callers, etc. However, it does not explicitly differentiate itself from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like xmp4_info, xmp4_outline, or xmp4_search. The agent is left to infer usage context without any when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_infoCInspect

Get detailed information about a symbol in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description is minimal—only states it gets info. No disclosure of side effects, authentication needs, rate limits, or what 'detailed information' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise single sentence; front-loaded with the core action. Could expand slightly without becoming verbose, but efficient for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 7 parameters and no output schema, the description is too brief. It doesn't explain what 'detailed information' includes, pagination behavior, or how parameters like docs or output_format affect results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter has documentation. The tool description adds no extra meaning beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets detailed info about a symbol in a project, using a specific verb and resource. It distinguishes from sibling tools like xmp4_callees or xmp4_callers which focus on relationships, but doesn't explicitly contrast with xmp4_symbol_at or xmp4_view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like xmp4_symbol_at or xmp4_source. No prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_outlineBInspect

Get outline (all symbols) for a file in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathYesFile path
page_sizeNoResults per page (default 20, max 100)
output_formatNoOutput format: Compact (default) or Verbose
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It does not reveal behavior like error handling (e.g., file not found), pagination mechanics (page/page_size parameters exist but are unmentioned), or output format details. The minimal description omits important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. It is front-loaded with the core action and resource, achieving maximal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is incomplete. It omits information about pagination, output format options, error scenarios, and how this tool fits into the broader set of sibling tools. A more comprehensive description is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions in the schema), so the baseline is 3. The tool description adds no additional meaning beyond the schema, but the schema itself is sufficiently detailed for most parameters. The description does not improve upon the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('outline (all symbols)'), and the scope ('for a file in a project'). It succinctly conveys the tool's purpose, distinguishing it from siblings like xmp4_symbol_at which targets individual symbols.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as xmp4_symbol_at, xmp4_grep, or xmp4_search. There is no mention of prerequisites (e.g., the file must exist in the project) or context for optimal usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_projectsAInspect

Search and browse projects by language and name. Use this first to discover projects, then use other tools with the repo name.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
repoNoFilter by repository name
queryNoSearch by project name (case-insensitive contains)
languageNoFilter by language (e.g., Python, TypeScript, CSharp)
page_sizeNoResults per page (default 20, max 100)
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 transparency. It does not mention any behavioral traits like pagination behavior, authentication needs, or side effects. However, the input schema covers pagination with page and page_size, so the description's omission is partially mitigated by schema coverage. Still, additional context on return format or limits would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with zero wasted words. It front-loads the purpose and immediately follows with usage guidance. Every sentence is essential and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, all optional, no output schema, no nested objects), the description is largely complete. It explains the tool's role in a workflow and leaves parameter details to the schema. A minor gap is the lack of information about what the tool returns (e.g., a list of project objects), but since there's no output schema, the description could hint at the return structure. Overall, adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter has a description in the schema. The tool description adds no new parameter meaning beyond what's in the schema. Therefore, baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to search and browse projects by language and name. It uses a specific verb ('Search and browse') and identifies the resource ('projects'). Among siblings like xmp4_repos and xmp4_search, this tool is distinguished as a project discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool: 'Use this first to discover projects, then use other tools with the repo name.' This provides clear workflow guidance and indirectly suggests when not to use it (e.g., after you have a repo name, use more specific tools).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_serverAInspect

Get server information, version, and capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It states what it returns (info, version, capabilities) but doesn't detail performance, rate limits, or side effects. With no annotations, more context would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and direct, one sentence covering the purpose. It's appropriately sized for a tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description adequately explains what the tool does. However, for a server info tool, it could mention that it returns JSON or provide example fields to be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, and schema description coverage is 100%. The description adds context about the return data, which is helpful since there's no output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves server information, version, and capabilities. However, it could better differentiate from sibling tools like xmp4_info, which might overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it's for getting general server details, but doesn't specify when to use it over similar tools like xmp4_info or xmp4_guide, nor explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_sourceCInspect

Extract source code for a symbol in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits like error handling or return format, but it only states the basic function without any details on side effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core purpose without any unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no output schema, no annotations), the description is too brief and does not provide enough context for an agent to fully understand the tool's behavior, such as how to handle ambiguity in project matching or symbol resolution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds no additional meaning beyond the schema's parameter descriptions, which already define each parameter clearly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('extract') and the resource ('source code for a symbol'), effectively distinguishing it from sibling tools like xmp4_info or xmp4_symbol_at which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor does it mention prerequisites or context for correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_symbol_atAInspect

LSP-style position→symbol lookup. Given (file_path, line, column) returns the symbol whose occurrence covers that cursor position. line is 1-based; column is 0-based. Use after xmp4_outline/xmp4_view when you know coordinates and want the canonical symbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineNoLine number (1-based)
columnNoColumn number (0-based, default 0 = beginning of line)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathYesFile path inside the project, relative to repo root
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It notes that line is 1-based and column is 0-based, which is important behavioral detail. However, it does not mention error cases, permissions, or the exact output format. Basic behavioral transparency is present but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and each sentence adds necessary information. There is no redundancy or filler. It is highly concise and structured effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and full schema coverage, the description is largely complete. It specifies inputs, coordinate conventions, and usage context. It does not describe the output format, but this is arguably implied by the purpose. A minor gap, but adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds value by explaining the overall LSP-style lookup context and the coordinate system (1-based line, 0-based column). It also clarifies the default column value ('default 0 = beginning of line') beyond the schema's 'default null'. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool's purpose: LSP-style position→symbol lookup. It states the inputs (file_path, line, column) and the output (symbol covering that cursor position). It distinguishes from sibling tools like xmp4_outline and xmp4_view by referencing them as prerequisites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance: 'Use after xmp4_outline/xmp4_view when you know coordinates and want the canonical symbol.' This tells the agent when to invoke the tool. It does not explicitly list when not to use it, but the context implies alternatives exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_tests_forAInspect

Find direct tests that exercise a given symbol (direct callers filtered to test-file candidates per language pattern: CSharp/Java/PHP: Test(s).; Python: test_.py / *_test.py; TypeScript/JavaScript: *.spec/test.{ts,js}; Rust: *_tests.rs / tests/; etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description adds behavioral context by detailing the language-specific file pattern filtering. However, it does not disclose potential side effects (likely none), authentication needs, rate limits, or what happens if no tests are found. It relies on schema for parameter details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that immediately conveys the primary purpose followed by supporting details (language patterns). No wasted words; front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters (2 required) and no output schema or annotations, the description covers the core functionality and file pattern logic. It lacks details on output format, pagination behavior, and error handling, but is sufficient for an agent to understand the main task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are described in the schema. The description does not add further meaning to individual parameters beyond the overarching function. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it finds 'direct tests that exercise a given symbol', specifying the action (find) and resource (tests for a symbol). The language pattern examples distinguish it from sibling tools like xmp4_callees or xmp4_callers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to find tests) but does not explicitly say when not to use or mention alternatives like xmp4_callers or xmp4_usages. The context of sibling tools and the filtering logic provide clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_usagesBInspect

Find all usages/references of a symbol in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoInclude docs: none (default) | summary | full (xmp4_info only)
pageNoPage number (1-based, default 1; ignored by xmp4_info/xmp4_source)
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
file_pathNoFile path to disambiguate
page_sizeNoResults per page (default 20, max 100)
symbol_nameYesSymbol name
output_formatNoOutput format: Compact (default) or Verbose
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden for behavioral disclosure. It only states the basic function, omitting critical details like whether it performs read-only operations, authorization needs, rate limits, or pagination behavior. The description adds minimal value beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded with the core action. However, given the complexity of 7 parameters, a slightly more detailed description might be warranted, but redundancy is avoided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is too sparse. It does not explain return values, pagination, or how to interpret results. A more complete description would mention output structure or common usage patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema, such as clarifying the 'docs' parameter's purpose or the 'output_format' options. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: finding usages/references of a symbol. The verb 'find' and resource 'usages/references' are specific, and the context 'in a project' matches required parameters. This distinguishes it from siblings like xmp4_callers (which focuses on direct callers) and xmp4_grep (text search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives such as xmp4_callers, xmp4_grep, or xmp4_search. The description lacks exclusions, prerequisites, or context about when this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmp4_viewAInspect

Read a raw file excerpt from an indexed project by line range. Use after xmp4_search/xmp4_outline locates the region of interest, or to expand a truncated xmp4_source snippet. Hard cap of 500 lines per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
to_lineNoEnding line (inclusive, default from_line+49, hard cap 500 lines per call)
file_pathYesFile path inside the project, relative to repo root
from_lineNoStarting line (1-based, default 1)
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It indicates read-only operation and a line cap. However, it does not disclose potential rate limits, auth requirements, or error behavior on missing files. Adequate for basic transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, concise, no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description could explain return format but doesn't. However, for a read tool with clear input constraints and siblings in the same domain, it is mostly complete. Might miss details on invalid project or file handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds little beyond the schema, just referencing line range generally. No new parameter semantics or format details are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a raw file excerpt by line range, and distinguishes from siblings by mentioning specific use cases after xmp4_search/xmp4_outline and to expand truncated xmp4_source snippets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage contexts: after search/outline or to expand truncated source. Mentions hard cap of 500 lines. Lacks explicit when-not-to-use guidance, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.