Skip to main content
Glama
bebopp187-stack

Titan Frameworks (LangChain, LlamaIndex, Ollama, XRPL)

Titan Frameworks

Paid MCP that reviews and rewrites LangChain, LlamaIndex, Ollama, and XRPL code against current APIs — plus runnable examples, import lookup, and tx skeletons that never submit. Live docs are still included.

Live Streamable HTTP: https://titan-frameworks-production.up.railway.app/mcp
Paid with x402: $0.001 USDC on Base or 1000 drops XRP / 0.001 RLUSD on XRPL mainnet.

Agent discovery: llms.txt · Smithery smithery.yaml · MCP Registry server.json

Tools

Tool

Purpose

review_framework_code

Lint a snippet for dead APIs before it crashes. Returns hunks, does not execute

rewrite_framework_code

Apply conservative catalog rewrites; leftover lists unsafe call sites

diagnose_framework_error

Stack-trace → deprecated API → exact fix. Use only when you have an error

resolve_symbol

Package, install, import, and call shape for one API name

fetch_working_example

Complete runnable file for a goal (agent, rag, payment, …)

fetch_latest_syntax

Working snippets and migration notes for one topic. Use when writing a fragment

search_ai_framework_docs

Keyword search over local Markdown. Use for concepts/symbols; not stack traces

draft_xrpl_intent_tx

Typed XRPL tx skeleton. Never submits or moves funds

list_supported_frameworks

Enumerate framework ids, aliases, and catalog topics (free tools/call)

list_known_deprecations

Full deprecation catalog for one framework or all four

Prompts: migrate_framework_code, diagnose_stack_trace, start_from_example.

Pick one: source about to run → review_framework_code; need a patched file → rewrite_framework_code; stack trace → diagnose_framework_error; know the symbol → resolve_symbol; need a full file → fetch_working_example; topic fragment → fetch_latest_syntax; concept → search_ai_framework_docs; XRPL tx → draft_xrpl_intent_tx; which frameworks → list_supported_frameworks; all deprecations → list_known_deprecations.

Related MCP server: Library Docs MCP Server

Connect a client

{
  "mcpServers": {
    "titan-frameworks": {
      "url": "https://titan-frameworks-production.up.railway.app/mcp"
    }
  }
}

x402-capable clients send PAYMENT-SIGNATURE / X-PAYMENT after a 402. Local stdio (titan-frameworks / npm run dev) does not charge.

To pay production from Cursor, enable titan-frameworks-paid in MCP settings (runs scripts/cursor-x402-proxy.ts, signs Base USDC from EVM_PRIVATE_KEY in .env, cap X402_PROXY_MAX_CALLS default 25). Check the proxy with npx tsx scripts/cursor-x402-proxy.ts --check.

HTTP endpoints

Path

Notes

GET /health

liveness + index stats

GET /llms.txt

agent discovery

GET /tools

tool list + live pricing

GET /.well-known/x402

x402scan resource index

GET /.well-known/x402.json

full payment requirements + bazaar metadata

GET /.well-known/mcp/server-card.json

Smithery static card

ALL /mcp

Streamable HTTP MCP. Handshake/tools/list/list_supported_frameworks free; other tools/call paid

Run locally (stdio)

cd titan-frameworks
npm install
npm run dev

Project config is in .cursor/mcp.json. Seed docs ship in src/data/seed-fallback.json.

npm run index-docs

Production re-indexes automatically when the live index is older than 24 hours. /admin can still trigger a crawl immediately.

HTTP mode (Vercel / Railway)

npm run dev:http
# POST http://127.0.0.1:3333/mcp
npm run build
npm start

Railway uses railway.toml (npm run start). Vercel rewrites to api/index.ts.

x402 micropayments

Production billing is on. Unpaid tools/call on POST https://titan-frameworks-production.up.railway.app/mcp returns 402, except list_supported_frameworks which is free. initialize, ping, and tools/list are free so directories can health-check the connector.

Rail

Price

Network

Facilitator

USDC

$0.001

Base (eip155:8453)

PayAI

XRP

1000 drops (0.001 XRP)

XRPL mainnet (xrpl:0)

T54

RLUSD

0.001

XRPL mainnet (xrpl:0)

T54

A raw wallet transfer is not an x402 proof. Clients retry /mcp with PAYMENT-SIGNATURE / X-PAYMENT. Local stdio (npm run dev) does not charge.

To reproduce the gate locally: X402_ENABLED=true (mock) plus X402_USDC_LIVE=true / X402_XRPL_LIVE=true for live verify/settle.

Password-gated admin

Production dashboard: https://titan-frameworks-production.up.railway.app/admin

It is not a public stats page. Login is a password checked against ADMIN_SECRET_KEY. Unauthenticated /api/admin/* calls return 401. The old public /admin/api/stats route is gone (404).

Layout

src/app/           Next.js admin UI + /api/admin routes
src/components/    Admin dashboard React components
src/tools/         MCP tool handlers
src/mcp/tools.ts   tool registration (includes xrpl)
src/indexer/       xrpl.js crawl targets
src/services/      search, indexer, store, x402, earnings, discovery
src/data/          JSON index, syntax catalog, known errors, symbol map, examples, XRPL intents
src/types/         Zod schemas + TS types
scripts/           index-docs, x402-smoke
server.json        MCP Registry remote listing
smithery.yaml      Smithery remote listing
glama.json         Glama maintainer claim

Available Tools

10 tools
diagnose_framework_errorDiagnose Framework ErrorA
Read-onlyIdempotent
Inspect

Match a stack trace or exception against known deprecated APIs for langchain, llamaindex, ollama, or xrpl and return the replacement plus a fix. Use only when you have an error_log; matched=false means no catalog hit — then search_ai_framework_docs with the failing symbol. Lint source before it crashes with review_framework_code. Not for happy-path syntax (fetch_latest_syntax). Paid tools/call: $0.001 USDC or 1000 drops XRP; read-only, does not execute code.

ParametersJSON Schema
NameRequiredDescriptionDefault
error_logYesRaw traceback or exception text. Paste the error, not a question about it
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library that threw the error

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintsYes
matchedYes
matchesYes
frameworkYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds substantial context beyond those: it discloses a per-call cost ('$0.001 USDC or 1000 drops XRP'), states 'read-only, does not execute code', and explains the matched=false contract for catalog misses. This is meaningful behavioral information not encoded in the structured annotations.

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?

Four dense sentences, each carrying essential information: purpose, usage precondition, fallback routing, sibling disambiguation, cost, and safety profile. Nothing is redundant; the main action is front-loaded and the additional context is packed efficiently.

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?

The definition is complete for a diagnostic tool with an output schema. It explains the input requirement, the failure mode (matched=false), the cost, the safe/read-only nature, and how it relates to sibling tools. Since the output schema exists, return values are already documented, and no critical operational detail is missing.

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 both parameters already have clear descriptions: error_log as 'Raw traceback or exception text' and framework as the allowed list. The tool description repeats the framework list but adds no new parameter-level semantics beyond what the schema provides, so the 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 states a specific verb ('Match') and resource ('stack trace or exception against known deprecated APIs') and names the exact frameworks (langchain, llamaindex, ollama, xrpl). It also explicitly contrasts with fetch_latest_syntax ('Not for happy-path syntax'), so an agent can distinguish this from siblings without opening the schema.

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?

It gives an explicit precondition ('Use only when you have an error_log'), a fallback action ('matched=false ... then search_ai_framework_docs with the failing symbol'), and a preventive alternative ('Lint source before it crashes with review_framework_code'). It also excludes happy-path syntax with fetch_latest_syntax, leaving no ambiguity about when to call this tool.

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

draft_xrpl_intent_txDraft XRPL Intent TransactionA
Read-onlyIdempotent
Inspect

Draft a typed xrpl.js / xrpl-py skeleton for payment, trustline, rlusd, or channel, plus required fields and common tec/tem failure codes. Use when building an XRPL tx; never submits, signs, or moves funds. Prefer fetch_working_example for a full script and review_framework_code to lint Amount/address mistakes. Paid tools/call: $0.001 USDC or 1000 drops XRP.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYespayment, trustline, rlusd, or channel — what the transaction should do
languageNotypescript (default) or python

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintsYes
notesYes
intentYes
matchedYes
submitsYes
languageYes
skeletonYes
movesFundsYes
failureCodesYes
requiredFieldsYes
transactionTypeYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description reinforces this with the explicit non-actions 'never submits, signs, or moves funds.' It further discloses cost ('$0.001 USDC or 1000 drops XRP'), which is not present in annotations or schema. This adds meaningful behavioral context beyond the structured fields.

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 four tight sentences: the core action, a usage directive with explicit exclusions, alternatives, and pricing. Every sentence earns its place, and the purpose is front-loaded before the routing guidance. No redundancy or filler.

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 the tool's low complexity, full schema coverage, and presence of an output schema, the description covers everything an agent needs: what it returns (skeleton plus failure codes), when to use it, what it won't do, alternatives, and cost. There is no missing information that would prevent correct invocation.

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% and both parameters (intent, language) are already described in the input schema. The description merely restates the allowed intent values and does not add new information about parameter formats, defaults, or edge cases. Baseline 3 applies because the schema does the heavy lifting.

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 names a specific verb ('Draft') and resource ('typed xrpl.js / xrpl-py skeleton') and narrows scope to payment/trustline/rlusd/channel. It explicitly contrasts itself with fetch_working_example (full script) and review_framework_code (linting), so an agent can distinguish it from siblings without opening schemas.

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?

It states exactly when to use the tool ('Use when building an XRPL tx') and what it never does ('never submits, signs, or moves funds'). It also names the alternatives and their purpose: 'Prefer fetch_working_example for a full script and review_framework_code to lint Amount/address mistakes.' No ambiguity remains.

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

fetch_latest_syntaxFetch Latest SyntaxA
Read-onlyIdempotent
Inspect

Curated working imports, snippets, and migration notes for one topic (agents, rag, wallet, payment, trustlines, …). Use when writing or migrating a fragment; unknown topics fall back to related doc chunks instead of failing. Prefer fetch_working_example for a complete runnable file, search_ai_framework_docs for open-ended lookup, and diagnose_framework_error for exceptions. Paid tools/call: $0.001 USDC or 1000 drops XRP; read-only catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesOne topic word: agents, rag, chat, tools, streaming, wallet, payment, trustlines, channels, rlusd, hooks, or migration
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library the user is coding against

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
importsYes
snippetsYes
frameworkYes
relatedDocsYes
versionNoteYes
migrationNotesYes

TDQS

A4.7/5.0
Behavior5/5

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

The description complements the annotations by adding the fallback behavior for unknown topics, the read-only nature of the catalog, and the per-call cost. These are behavioral details beyond readOnlyHint, idempotentHint, and openWorldHint. No contradictions with annotations.

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

Conciseness5/5

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

The description is front-loaded with the primary purpose and uses a compact sentence. Every sentence adds value: purpose, usage trigger, fallback behavior, alternative routing, and cost/read-only note. No filler or repetition.

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?

With only two fully documented parameters, an existing output schema, and annotations covering safety, the description provides all necessary context: what the tool returns, when to use it, how it behaves on unknown topics, and how it differs from alternatives. Nothing an agent needs to invoke it correctly is missing.

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%, and the description adds no new meaning about individual parameters beyond what the schema already documents for 'topic' and 'framework'. The description's mention of 'one topic' and example values is redundant with the parameter descriptions, so the 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 states a specific verb and resource: it delivers 'curated working imports, snippets, and migration notes' for a single topic. It also differentiates itself from siblings by explicitly naming what to prefer for other needs (complete runnable file, open-ended lookup, exceptions), so an agent can distinguish this tool immediately.

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 gives an explicit trigger: 'Use when writing or migrating a fragment.' It also routes to alternatives with clear conditions—fetch_working_example for complete files, search_ai_framework_docs for open-ended lookup, diagnose_framework_error for exceptions—and explains fallback behavior for unknown topics.

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

fetch_working_exampleFetch Working ExampleA
Read-onlyIdempotent
Inspect

Fetch one complete runnable file (filename, install/run, source) for a goal such as agent, rag, chat, payment, or rlusd. Use when fetch_latest_syntax snippets are too small to execute. matched=false means no catalog example — then fetch_latest_syntax. Paid tools/call: $0.001 USDC or 1000 drops XRP; does not execute the example.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesWhat to build: agent, rag, chat, lcel, payment, rlusd, trustline, …
runtimeNoopenai, ollama, or xrpl-testnet. Omit to take the best match
languageNopython or typescript. Omit to take the best match
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library the example should use

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
runYes
codeYes
goalsYes
hintsYes
matchedYes
runtimeYes
filenameYes
languageYes
versionsYes
frameworkYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already include readOnlyHint=true and idempotentHint=true, and the description reinforces them by stating 'does not execute the example.' It also adds valuable non-obvious context: the paid cost ($0.001 USDC or 1000 drops XRP) and the matched=false response semantics, which go beyond what annotations provide.

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 tight sentences front-load what the tool fetches, then cover usage context, fallback behavior, and cost. No filler or redundant restatement of schema details; every clause earns its place.

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?

For a 4-parameter fetch tool with an output schema, the description fully equips an agent: what it returns (filename, install/run, source), when to choose it, what happens when no example matches, cost, and non-execution guarantee. Nothing needed to invoke it correctly is missing.

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 four parameters. The description adds some helpful context with goal examples ('agent, rag, chat, payment, rlusd') but does not add meaning beyond what the schema provides for runtime, language, or framework.

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?

States a specific verb and resource: 'Fetch one complete runnable file' with concrete goal examples (agent, rag, chat, payment, rlusd). Explicitly names its sibling fetch_latest_syntax and explains the distinction, making it easy for an agent to select this tool over alternatives.

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?

Directly says when to use this tool: 'Use when fetch_latest_syntax snippets are too small to execute.' It also provides the fallback behavior ('matched=false means no catalog example — then fetch_latest_syntax'), giving explicit when-to-use and when-not-to-use guidance.

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

list_known_deprecationsList Known DeprecationsA
Read-onlyIdempotent
Inspect

Return the known-deprecated API catalog (id, old API, replacement, fix) for one framework or all four at once. Use when you want the full deprecation list without a stack trace or source snippet. Prefer diagnose_framework_error when you have an error_log and review_framework_code when you have code. Paid tools/call: $0.001 USDC or 1000 drops XRP; catalog-backed, does not execute code.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameworkNoOptional. One of langchain, llamaindex, ollama, or xrpl. Omit to list every known deprecation

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
hintsYes
frameworkYes
deprecationsYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already supply readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds valuable context: 'catalog-backed, does not execute code' reinforces no side effects, and the explicit pricing ($0.001 USDC or 1000 drops XRP) is unique behavioral information not present in annotations. This goes beyond the baseline and gives the agent key operational 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?

The description is concise, front-loaded with the core purpose, and each sentence serves a distinct role: return description, usage context, alternative routing, and cost/behavior. There is zero filler and the structure leads with the main function, making it efficient for quick scanning.

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 the tool's simplicity (one optional parameter), the presence of an output schema, and comprehensive annotations, the description covers all necessary aspects: what it returns, when to use it, how it differs from siblings, and its side-effect-free nature. No critical operational detail is missing.

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% and the parameter 'framework' is fully described in the schema: 'Optional. One of langchain, llamaindex, ollama, or xrpl. Omit to list every known deprecation.' The description's phrase 'for one framework or all four at once' adds no new meaning beyond the schema, so the baseline of 3 applies.

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 ('Return'), the resource ('known-deprecated API catalog'), the fields (id, old API, replacement, fix), and the scope (one framework or all four). It explicitly differentiates from sibling tools by noting it works 'without a stack trace or source snippet' and names alternative tools for error logs and code review, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: 'Use when you want the full deprecation list without a stack trace or source snippet.' It further specifies alternatives: 'Prefer diagnose_framework_error when you have an error_log and review_framework_code when you have code.' This clearly routes the agent based on available context, leaving no inference required.

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

list_supported_frameworksList Supported FrameworksA
Read-onlyIdempotent
Inspect

List the framework ids this server covers (langchain, llamaindex, ollama, xrpl) with display names, aliases, homepages, and catalog topics. Use when you do not know which framework string to pass. Free tools/call (no x402). Not a docs search (search_ai_framework_docs) and not a deprecation dump (list_known_deprecations). Catalog-backed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
idsYes
countYes
frameworksYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=true, openWorldHint=false, and idempotentHint=true, and the description adds useful non-obvious traits: it is free per call with no x402, catalog-backed, and has a scoped list behavior rather than a search or deprecation dump. There is no contradiction with annotations.

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

Conciseness5/5

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

The description is compact and front-loaded with the core listing action, followed by a clear usage trigger, cost note, and sibling exclusions. Every sentence earns its place without redundancy.

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?

For a parameterless list tool with a rich output schema and safety annotations, the description covers what is returned, when to use it, and what it is not. Nothing an agent needs to invoke it correctly 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 tool has zero parameters, so parameter risk is trivial and the empty schema is fully covered. The description still adds value by listing the framework IDs and explaining they are string values to pass elsewhere, though no current parameter needs documentation.

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 uses a specific verb and resource: 'List the framework ids this server covers' and enumerates the exact IDs and returned attributes. It explicitly distinguishes itself from sibling search_ai_framework_docs and list_known_deprecations, so an agent can identify the correct tool without opening schemas.

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?

It gives an explicit trigger condition: 'Use when you do not know which framework string to pass.' It also names what this tool is not, referencing the sibling tools to use instead, leaving no ambiguity about when to choose it.

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

resolve_symbolResolve SymbolA
Read-onlyIdempotent
Inspect

Map an API name to the current package, install line, import, and call shape (ChatOpenAI, create_agent, VectorStoreIndex, xrpToDrops, …). Use when you know the symbol but not where it lives. Prefer search_ai_framework_docs for concepts and fetch_latest_syntax for topic snippets. Paid tools/call: $0.001 USDC or 1000 drops XRP; catalog-backed.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesAPI name or import path, e.g. ChatOpenAI, ServiceContext, RippleAPI
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library that owns the symbol

Output Schema

ParametersJSON Schema
NameRequiredDescription
callYes
noteYes
hintsYes
symbolYes
aliasesYes
installYes
matchedYes
packageYes
frameworkYes
importLineYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent behavior. The description adds non-obvious context beyond annotations: the call is paid ($0.001 USDC or 1000 drops XRP) and catalog-backed. This informs cost expectations and data source. Not-found behavior is not covered, but this is minor for a simple lookup.

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 focused sentences front-load the core operation, then give the use condition, alternative tools, and cost. Every sentence earns its place with no repetition of schema content.

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?

With a complete input schema, rich parameter descriptions, an output schema, and helpful annotations, the description covers purpose, use case, alternatives, and cost. An agent has enough to decide when to invoke it and how to invoke it correctly.

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 both parameters already have meaningful descriptions: symbol is 'API name or import path' with examples, and framework is defined with accepted library names. The description adds output-shape context, but it does not need to compensate for schema gaps.

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 states a precise operation: 'Map an API name to the current package, install line, import, and call shape.' It gives concrete examples and distinguishes the tool from siblings by framing it as resolving symbols whose location is unknown.

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?

It explicitly says when to use this tool — 'when you know the symbol but not where it lives' — and names alternatives with their preferred contexts: search_ai_framework_docs for concepts and fetch_latest_syntax for topic snippets. This gives clear routing guidance.

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

review_framework_codeReview Framework CodeA
Read-onlyIdempotent
Inspect

Scan source against known dead APIs (LLMChain, initialize_agent, ServiceContext, ripple-lib, …) and return each hit with replacement plus a unified-diff hunk. Use before running agent-written code; diagnose_framework_error is for after a stack trace. Does not execute or submit. Paid tools/call: $0.001 USDC or 1000 drops XRP; catalog-backed, not LLM-invented.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSource to lint before running. Not a stack trace (use diagnose_framework_error)
filenameNoOptional path used only in unified-diff headers
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library the snippet is written against

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintsYes
issuesYes
matchedYes
frameworkYes
issueCountYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds essential context beyond these: it explicitly states 'Does not execute or submit' (confirming read-only behavior), discloses a per-call cost ($0.001 USDC or 1000 drops XRP), and asserts 'catalog-backed, not LLM-invented' for reliability. All of this is valuable and non-redundant; there is no contradiction with the annotations.

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 compact and well-structured. The main purpose and output are front-loaded in the first sentence. Usage guidance, safety note, and cost follow logically. Every sentence earns its place; no filler or repetition.

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?

The tool is moderately complex with 3 parameters and an output schema that already describes return structure. The description covers the core decision points: what it does, when to use it, that it is read-only, cost, and reliability. It appropriately routes to the main sibling tool. No missing information that an agent would need to call it correctly.

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 schema covers all 3 parameters with descriptions, so the baseline is 3. The description adds meaningful semantic value: it lists concrete dead API examples (LLMChain, initialize_agent, ServiceContext, ripple-lib) to guide the framework choice, and clarifies that 'code' is 'Source to lint before running' and explicitly 'Not a stack trace (use diagnose_framework_error)'. This goes beyond the schema's brief descriptions without being exhaustive.

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 states exactly what the tool does: scans source against known dead APIs and returns each hit with a replacement and a unified-diff hunk. It is specific about the resource (source), the action (scan), and the output. It also differentiates from the sibling diagnose_framework_error by clarifying the timing of use (before running code vs. after a stack trace).

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?

Explicitly says 'Use before running agent-written code' and points to the alternative: 'diagnose_framework_error is for after a stack trace.' This gives clear when-to-use and when-not-to-use guidance, and even names the specific sibling tool for the other scenario. No ambiguity remains.

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

rewrite_framework_codeRewrite Framework CodeA
Read-onlyIdempotent
Inspect

Apply conservative catalog rewrites (imports/identifiers) to a snippet and return the patched file plus a full unified diff. Use when review_framework_code found hits and you want an applyable file. Leftover lists unsafe call-site transforms (e.g. LLMChain(...)) that stay for a human/agent. Does not execute or submit. Paid tools/call: $0.001 USDC or 1000 drops XRP.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSource to lint before running. Not a stack trace (use diagnose_framework_error)
filenameNoOptional path used only in unified-diff headers
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library the snippet is written against

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeYes
diffYes
notesYes
appliedYes
changedYes
filenameYes
leftoverYes
frameworkYes

TDQS

A4.3/5.0
Behavior5/5

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

Adds meaningful behavior beyond the readOnly/idempotent annotations: it does not execute or submit, it returns a patched file plus full diff, unsafe transforms stay for a human/agent, and it discloses the per-call cost. No contradiction with annotations.

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

Conciseness4/5

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

Four sentences deliver purpose, usage, limitations, side-effect safety, and cost with little waste. The 'Leftover lists unsafe call-site transforms' sentence is awkward and slightly ambiguous, so it is not perfectly structured.

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?

With an output schema and strong annotations present, the description covers the key operating constraints: when to use, what is left unchanged, non-execution, and cost. The ambiguity around 'Leftover lists...' is a minor completeness gap, but nothing critical is missing for correct invocation.

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% and each parameter already has a clear schema description. The description adds some context about rewrite scope and output, but it does not materially extend parameter-level meaning 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?

Description states a specific verb and resource: apply conservative catalog rewrites (imports/identifiers) to a snippet and return a patched file plus unified diff. It also distinguishes the tool from review_framework_code and other siblings by explaining the output and scope.

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?

Explicitly says to use when review_framework_code found hits and an applyable file is wanted, and notes that unsafe call-site transforms remain for a human/agent. It lacks an explicit 'do not use when' or named alternative for the leftover cases, but the trigger condition is clear.

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

search_ai_framework_docsSearch AI Framework DocsA
Read-onlyIdempotent
Inspect

Keyword search over a local Markdown index for langchain, llamaindex, ollama, or xrpl; returns compact chunks and never live-crawls. Use for concepts, symbols, or questions; hitCount 0 means no match — shorten the query. Do not use for stack traces (diagnose_framework_error), import/package lookup (resolve_symbol), or copy-paste current syntax (fetch_latest_syntax). Paid tools/call: $0.001 USDC or 1000 drops XRP.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes2–8 keywords or an API symbol. Not a stack trace (use diagnose_framework_error)
frameworkYesOne of langchain, llamaindex, ollama, or xrpl — the library the user is coding against

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
queryYes
hitCountYes
frameworkYes

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already mark readOnlyHint, idempotentHint, and openWorldHint=false, and the description reinforces and extends this: it is a local index search, never live-crawls, returns compact chunks, and uses hitCount 0 to signal no match. It also discloses the per-call cost, adding practical behavioral context beyond annotations.

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 compact and front-loaded with the tool's essential behavior, then covers usage boundaries, common failure recovery, and cost. Every sentence earns its place; there is no filler or repetition of schema content.

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?

For a search tool with a rich output schema and detailed parameter documentation, the description covers what it searches, how it behaves, when to use it, which siblings to prefer instead, and cost. No practical gap remains for an agent deciding whether and how to invoke it.

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?

Schema coverage is 100% and the schema already documents both parameters well. The description adds extra value by framing queries as 'concepts, symbols, or questions' and by advising to shorten the query when hitCount is 0, which helps the agent craft an effective query parameter.

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?

States a specific verb ('search'), a precise resource ('local Markdown index for langchain, llamaindex, ollama, or xrpl'), and disambiguating traits ('returns compact chunks and never live-crawls'). This clearly distinguishes it from siblings like diagnose_framework_error, resolve_symbol, and fetch_latest_syntax.

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?

Explicitly says when to use it ('concepts, symbols, or questions') and when not to, naming the exact sibling alternatives for stack traces, import/package lookup, and current syntax. It also gives a concrete recovery action when no results are found: shorten the query.

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.

  1. 10 tool updatesv1.0.1
    • First observeddiagnose_framework_error
    • First observeddraft_xrpl_intent_tx
    • First observedfetch_latest_syntax
    • First observedfetch_working_example
    • First observedlist_known_deprecations
    • First observedlist_supported_frameworks
    • First observedresolve_symbol
    • First observedreview_framework_code
    • First observedrewrite_framework_code
    • First observedsearch_ai_framework_docs

TDQS

A4.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct stage or granularity: source review, rewrite, error diagnosis, symbol resolution, examples, syntax, docs, XRPL drafting, framework listing, and deprecation listing. Descriptions explicitly steer between potentially overlapping tools, leaving little ambiguity.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_object pattern, with clear objects like framework_code, framework_error, symbol, working_example, and known_deprecations. Repeated verbs are paired with distinct objects, making the naming predictable.

Tool Count5/5

Ten tools is well-scoped for a multi-framework migration and deprecation assistant. Each tool has a clear role, and no tool feels redundant or missing.

Completeness5/5

The toolset covers the full consult/refactor workflow: scan source, apply safe rewrites, diagnose errors, resolve symbols, fetch examples/syntax/docs, draft XRPL transactions, and enumerate framework/deprecation catalogs. Tools cross-reference next steps, so agents are not left at dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers