spt-forge-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@spt-forge-mcpsearch mods for 'AllInOne' mod"
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.
spt-forge-mcp
MCP server for the SP-Tarkov Forge API. Exposes Forge endpoints as MCP tools over stdio, letting LLMs search mods, check updates, resolve dependencies, browse addons, and list SPT versions.
Setup
npm install
npm run buildClaude Code
Add to your MCP config (.claude/settings.json or global settings):
{
"mcpServers": {
"spt-forge": {
"command": "node",
"args": ["/path/to/spt-forge-mcp/dist/index.js"]
}
}
}Related MCP server: mcp-cli-catalog
Tools
Tool | Description |
| Full-text search and filter mods (name, category, SPT version, Fika compatibility) |
| Get full details for a mod by ID |
| Paginated version history with dependencies |
| Check for updates given installed mod versions and target SPT version |
| Recursive dependency tree with conflict detection |
| Search addons (supplemental mod content) |
| Get full addon details by ID |
| Paginated addon version history |
| Recursive addon dependency tree |
| List all mod categories |
| Get a single category by ID or slug |
| List SPT versions with mod counts |
| Forge API health check |
Available Tools
13 toolscheck_mod_updatesCheck Mod UpdatesA
Check for available updates for installed mods against a target SPT version. Handles dependency validation and prerelease logic.
| Name | Required | Description | Default |
|---|---|---|---|
| mods | Yes | Comma-separated identifier:version pairs. Identifier can be mod ID or GUID. E.g. '5:1.2.0,com.example.mod:2.0.5' | |
| spt_version | Yes | Target SPT version to check compatibility against |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses the core checking behavior and mentions dependency validation and prerelease logic, but does not specify if the operation is read-only, any side effects, or required permissions. Adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key action, no extraneous content. Every word earns its place.
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?
With low complexity (2 params, no output schema, no annotations), the description covers purpose and some behavior but lacks return value information and usage guidance. Adequate but could be more complete.
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 description adds minimal value beyond restating overall purpose. The schema already fully describes the parameters. Baseline 3 is appropriate.
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 'Check for available updates for installed mods against a target SPT version' with specific verb and resource, and mentions dependency and prerelease handling. It clearly distinguishes from siblings like get_mod_versions or resolve_mod_dependencies.
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 when to use (check updates) but does not provide explicit alternatives or when-not-to-use scenarios. Sibling tools suggest related functionality, but no guidance is given to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_addonGet Addon DetailsB
Get full details for a specific addon by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Relationships: versions, license, mod | |
| addon_id | Yes | The addon's numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read-only operation ('get') but does not disclose error handling, authentication needs, or response format. While not misleading, it lacks depth.
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?
A single, clear sentence of 11 words with no redundancy. Every word contributes to the purpose.
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 retrieval tool, the description is adequate but incomplete. It does not explain what 'full details' entails, and without an output schema, the agent cannot anticipate the response structure. More context on expected results would improve completeness.
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 coverage is 100% with clear descriptions for both parameters. The tool description adds only 'by its numeric ID', which is already stated in the schema. Thus, no additional meaning beyond the schema.
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 identifies the tool's action ('Get full details') and resource ('specific addon'), and specifies the input method ('by its numeric ID'). This distinguishes it from sibling tools like 'get_addon_versions' which focus on specific aspects, but it does not explicitly contrast with all siblings.
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 provided on when to use this tool versus alternatives such as 'search_addons' or 'get_mod'. Given the variety of sibling tools, some usage context would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_addon_versionsGet Addon VersionsC
Get the full version history for an addon. Includes mod version constraints, download counts, and file sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | Sort field, e.g. '-published_at' for newest first | |
| include | No | Relationships to include: virus_total_links | |
| addon_id | Yes | The addon's numeric ID | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits like read-only status, side effects, or rate limits. It only states what is returned, not any constraints or error conditions. Pagination and sorting are implied by parameters but not described. The description adds minimal value beyond the basic action.
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 concise: two sentences, front-loaded with core purpose. The second sentence adds output details efficiently. However, it lacks structure (e.g., bullet points) and could be slightly more organized, but overall it is not wasteful.
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 5 parameters, no output schema, and no annotations, the description is significantly incomplete. It does not explain pagination (page, per_page), filtering (sort, include), or error handling. The output is partially described but missing details on full response structure. The description leaves many gaps for an agent.
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 60%, meaning some parameters have descriptions (e.g., sort, include, addon_id), but the tool description adds no parameter-level detail. It does not explain how to use sort values, include options, or pagination. The description merely lists output fields, which are not parameters.
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 'Get the full version history for an addon', which is a specific verb and resource. It also lists included data (mod version constraints, download counts, file sizes), distinguishing it from sibling tools like get_mod_versions (which likely targets mods) and get_addon (returns addon details, not history).
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 explicit guidance on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or preferred contexts. The phrase 'for an addon' implies a use case, but siblings like get_mod_versions or get_addon could overlap, and no comparison is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_categoryGet CategoryA
Get a single mod category by its numeric ID or slug.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Category ID (numeric) or slug string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It correctly indicates a read operation ('get') but does not mention any potential side effects, permissions, or rate limits. For a simple read tool, this is adequate but not exceptionally transparent.
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 a single, complete sentence that is front-loaded with the purpose. No unnecessary words or fluff.
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 the low complexity (one parameter, no output schema), the description adequately covers what the tool does and how to use it. It lacks details about the return value but is sufficient for a simple lookup 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?
The schema coverage is 100% with one parameter fully described. The description's mention of 'numeric ID or slug' aligns with the schema description, adding no new meaning beyond what the schema provides. Baseline score is appropriate.
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 verb 'Get' and the resource 'single mod category', and specifies the identification method (numeric ID or slug). It distinguishes itself from the sibling 'list_categories' which retrieves multiple categories.
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 when to use this tool (to fetch a single category) but does not explicitly state when not to use it or compare with alternatives like 'list_categories'. The mention of 'by its numeric ID or slug' provides usage context for the parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_modGet Mod DetailsA
Get full details for a specific SP-Tarkov mod by its numeric ID. Includes description, versions, license, and category by default.
| Name | Required | Description | Default |
|---|---|---|---|
| mod_id | Yes | The mod's numeric ID | |
| include | No | Comma-separated relationships: versions, license, category, source_code_links |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool returns description, versions, license, and category by default and hints at the 'include' parameter for extra relationships. However, it lacks details on response format, pagination, rate limits, or authentication needs.
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 sentences, perfectly front-loaded with the core purpose. No unnecessary words or 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?
No output schema is provided, but the description lists the categories of information returned. For a tool with two parameters and default behavior, it is adequate but lacks detail on response structure and edge cases.
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 baseline is 3. The description adds context that default fields are returned and that 'include' can add relationships, but does not elaborate on the meaning of each include value beyond what the schema provides.
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 verb 'Get', the resource 'full details for a specific SP-Tarkov mod', and the unique identifier (numeric ID). It lists included information, distinguishing it from sibling tools like get_mod_versions and check_mod_updates.
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. For instance, it does not mention that get_mod_versions might be preferred if only versions are needed, nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mod_versionsGet Mod VersionsA
Get the full version history for a mod. Includes SPT version constraints, download counts, Fika compatibility status, and dependency info.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | Sort field, e.g. '-published_at' for newest first | |
| mod_id | Yes | The mod's numeric ID | |
| include | No | Comma-separated relationships to include: dependencies, virus_total_links | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry burden. It states it retrieves version history (read-only) and lists included info, but omits pagination behavior, rate limits, or auth requirements.
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 with clear verb and resource. No fluff; front-loaded with purpose.
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?
No output schema and 5 parameters with 60% coverage. Description covers what data is returned but not pagination, sorting, or include options, leaving gaps for effective use.
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 coverage is 60% but description adds no parameter-specific meaning. It does not explain page, sort, include, or per_page beyond schema descriptions, missing an opportunity to clarify usage.
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 clearly states the tool gets the full version history for a mod and specifies included data (SPT constraints, downloads, Fika status, dependencies). Distinct from sibling tools like get_mod which likely returns mod details.
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 explicit when-to-use or when-not-to-use guidance. Implied use is for version history, but no comparison with siblings like check_mod_updates or resolve_mod_dependencies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spt_versionsGet SPT VersionsB
List available SPT versions with mod counts and release links. Useful for determining which SPT version constraint to filter mods by.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only lists outputs. Does not disclose traits like read-only nature, required permissions, rate limits, or behavior when no versions exist. For a simple list tool, minimal transparency is given.
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 sentences with zero fluff. First sentence states what it does, second provides context on utility. Efficient and front-loaded.
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 no output schema, the description covers returned data (versions, counts, links) but omits parameter details. Schema provides pagination params, but since descriptions are missing, it's a gap. Adequate for a simple list tool but not fully complete.
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 description does not mention the parameters (page, per_page). The name 'per_page' is somewhat self-explanatory but 'page' is not; description adds no value beyond schema names.
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?
Clearly states 'List available SPT versions' with included data (mod counts, release links) and a specific use case (determining version constraint for filtering mods). Distinct from sibling tools like get_mod_versions or list_categories.
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?
Explicitly mentions a use case: 'determining which SPT version constraint to filter mods by.' However, it does not provide when-not-to-use guidance or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList Mod CategoriesA
List all available mod categories on the Forge. Useful for discovering category slugs to filter searches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the purpose and does not disclose behavioral traits such as caching, response format, or any side effects. Given the simplicity, minimal disclosure is acceptable but not exemplary.
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 with two sentences, each serving a clear purpose: stating the function and providing usage guidance. No unnecessary 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?
Given the simplicity (no params, no output schema), the description is mostly complete. However, it could be improved by explicitly stating the output format (e.g., list of category names and slugs). The current hint is sufficient but not thorough.
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?
There are no parameters, so the description does not need to add meaning beyond the schema. The mention of 'category slugs' hints at output semantics, compensating slightly for the lack of output schema.
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 it lists all available mod categories on the Forge, which is a specific verb and resource. It also distinguishes itself from siblings as the only tool for listing categories.
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 indicates it is useful for discovering category slugs to filter searches, providing context for when to use it. However, it does not explicitly mention when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingPing Forge APIA
Health check — returns pong if the Forge API is reachable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It accurately describes return value ('pong') and confirms it's a simple reachability test with no side effects. Lacks detail on rate limits or idempotency, but for a ping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no redundant words. Front-loaded with 'Health check'. Every word adds value.
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 zero parameters, no output schema, and simple purpose, description is fully complete. Tells agent what it does and what it returns, enabling correct invocation.
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?
No parameters exist, and schema coverage is 100%. Description adds no param info, but baseline for 0 params is 4. No need for additional semantics.
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 clearly states it's a health check that returns pong if the API is reachable. Uses specific verb 'ping' and resource 'Forge API'. No ambiguity or 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?
States it's a health check, implying use to test API reachability. However, no explicit when-not-to-use or alternatives among siblings given. Adequate but minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_addon_dependenciesResolve Addon DependenciesA
Resolve the full recursive dependency tree for one or more addon versions. Uses addon ID or slug as identifier (not GUID).
| Name | Required | Description | Default |
|---|---|---|---|
| addons | Yes | Comma-separated identifier:version pairs. Identifier is addon ID or slug. E.g. '12:1.0.0,my-addon:2.1.0' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it resolves the full recursive tree and the identifier format, but does not mention side effects (e.g., no modifications), rate limits, or return behavior. Adequate but not comprehensive.
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 sentences, no wasted words, front-loaded with key information. Ideal conciseness.
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?
No output schema provided, and the description does not explain the return format (e.g., tree structure). For a dependency resolution tool, the output nature is important context that is missing.
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 coverage is 100%, baseline 3. The description adds minimal value beyond schema, only clarifying the identifier is not GUID. The schema itself provides a detailed example and format.
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 action ('Resolve the full recursive dependency tree'), the resource ('addon versions'), and the identifier type ('addon ID or slug, not GUID'). It effectively distinguishes from the sibling tool 'resolve_mod_dependencies' by specifying 'addon'.
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 usage for resolving addon dependencies but does not provide explicit guidance on when to use this tool versus alternatives like 'resolve_mod_dependencies'. No 'when-not' or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_mod_dependenciesResolve Mod DependenciesB
Resolve the full recursive dependency tree for one or more mod versions. Detects version conflicts and provides download links.
| Name | Required | Description | Default |
|---|---|---|---|
| mods | Yes | Comma-separated identifier:version pairs. E.g. '5:1.2.0,com.example.mod:2.0.5' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral disclosure. It conveys key behaviors (recursive resolution, conflict detection, download links) but omits details about side effects, authentication needs, rate limits, or error handling. The read vs. write nature is not explicitly stated.
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 a single sentence that covers the essential purpose and outputs without unnecessary words. It is appropriately front-loaded and avoids verbosity.
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 the tool's complexity (recursive dependency resolution with conflict detection) and lack of an output schema, the description is brief and does not explain the output format or how results are structured. It provides enough to understand the core function but lacks detail for complete agent understanding.
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 coverage is 100% and the parameter description in the input schema already explains the format ('Comma-separated identifier:version pairs'). The tool description adds little beyond what the schema provides, warranting the baseline score of 3.
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 resolves the full recursive dependency tree for mod versions, detecting conflicts and providing download links. It uses a specific verb ('Resolve') and resource ('mod dependencies'), but does not explicitly differentiate from the sibling 'resolve_addon_dependencies', slightly reducing clarity.
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 use this tool versus alternatives like 'check_mod_updates' or 'resolve_addon_dependencies'. There are no hints about prerequisites, context, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_addonsSearch AddonsB
Search SP-Tarkov addons (supplemental content for mods, like music packs or texture overrides).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | Sort field, e.g. '-published_at' | |
| query | No | Full-text search query | |
| include | No | Relationships to include: versions, license, mod | |
| per_page | No | ||
| filter_name | No | Fuzzy filter by name | |
| filter_mod_id | No | Filter by parent mod ID(s), comma-separated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Search...addons' without disclosing behavioral traits such as pagination, sorting, filtering behavior, required auth, or output format. The agent lacks cues about limitations or side effects.
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 a single, front-loaded sentence with no wasted words. It clearly defines the tool's domain. However, it could be slightly more structured (e.g., brief example) without losing conciseness.
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?
With 7 parameters, no output schema, and no annotations, the description is too sparse. It omits how to use pagination, sorting, filters, or what the response looks like. The agent lacks sufficient context to invoke the tool correctly.
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 71% (5 of 7 parameters have descriptions). The description does not add any parameter meaning beyond what the schema already provides. A score of 3 reflects adequate but not enhanced parameter semantics.
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 verb 'Search' and the resource 'SP-Tarkov addons', and defines addons as 'supplemental content for mods', distinguishing it from sibling tools like search_mods which search for mods themselves.
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 when to use (searching for addons rather than mods) but does not explicitly state when not to use or provide alternatives. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_modsSearch ModsA
Search and filter SP-Tarkov mods on the Forge. Supports full-text search via query, filtering by name, category, SPT version, Fika compatibility, and more. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| sort | No | Sort by field(s). Prefix with - for DESC. Options: name, featured, created_at, updated_at, published_at. E.g. '-published_at' | |
| query | No | Full-text search across mod name, slug, and description (powered by Meilisearch) | |
| include | No | Comma-separated relationships to include: versions, license, category, source_code_links | |
| per_page | No | Results per page (max 50) | |
| filter_name | No | Fuzzy filter by mod name | |
| filter_featured | No | Filter to featured mods only | |
| filter_spt_version | No | Filter mods compatible with an SPT version constraint (e.g. '^3.11.0') | |
| filter_category_slug | No | Filter by category slug(s), comma-separated (e.g. 'weapons,gear') | |
| filter_fika_compatible | No | Filter to only Fika-compatible mods |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavior. It mentions returned paginated results and support for various filters but omits side effects, mutability, or rate limits. Adequate but not thorough for a search tool.
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 sentences with no wasted words. First sentence states purpose, second adds details on query and filtering. Front-loaded and efficient.
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 10 optional parameters, no output schema, and no annotations, the description covers the main functionality and pagination. Could mention maximum per_page limit or that multiple filters combine with AND, but not critical.
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 coverage is 100% with each parameter well-described. The description adds value by summarizing the filtering capabilities and grouping parameters (e.g., 'filtering by name, category, SPT version, Fika compatibility') which helps organize the parameter set.
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 clearly states the tool searches and filters SP-Tarkov mods with specific verb 'Search and filter' and resource 'SP-Tarkov mods'. It distinguishes from siblings like 'get_mod' (single mod retrieval) and 'search_addons' (different resource).
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?
Provides clear context for when to use: full-text search and filtering by multiple criteria. Though it doesn't explicitly mention when not to use, sibling tool names (e.g., get_mod, check_mod_updates) imply alternatives.
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.
13 tool updates
v1.0.0- First observed
check_mod_updates - First observed
get_addon - First observed
get_addon_versions - First observed
get_category - First observed
get_mod - First observed
get_mod_versions - First observed
get_spt_versions - First observed
list_categories - First observed
ping - First observed
resolve_addon_dependencies - First observed
resolve_mod_dependencies - First observed
search_addons - First observed
search_mods
TDQS
Tools are clearly separated by entity type (mod vs addon) and action (search, get, list, resolve, check). Each tool has a distinct purpose, with no overlapping functionality. For example, `search_mods` and `search_addons` target different content categories, and `get_mod` vs `get_mod_versions` provide different levels of detail.
All tool names follow a consistent `verb_noun` pattern using snake_case (e.g., `check_mod_updates`, `get_addon_versions`, `list_categories`). There is no mixing of styles, and verbs accurately describe the operation (get, search, list, resolve, check, ping).
With 13 tools, the set is well-scoped for a mod repository query interface. It covers search, details, versions, dependencies, categories, and health check without unnecessary bloat. The number aligns with typical MCP servers (3-15 tools).
The tool surface appears complete for browsing and resolving dependencies in the SP-Tarkov mod ecosystem. It includes search, detail retrieval, version history, dependency resolution, category exploration, and update checking. The workflow from discovering mods via search to resolving dependencies is fully supported, with no obvious dead ends.
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)3MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that publishes CLI tools on your machine for discoverability by LLMs141MIT
- AlicenseAqualityCmaintenanceMCP server that exposes RESTForge capabilities to AI agents, enabling them to set up, configure, generate code, and manage RESTForge projects through natural language.2944MIT
- AlicenseNot gradedqualityDmaintenanceThe Forge Engine runtime: a thin, MIT-licensed proxy that connects any MCP client to Forge — the design spec AI coding agents read before building and report back to. Serves the full 54-tool surface; discovery works signed out, tool calls authenticate.11MIT
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/cebarks/spt-forge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server