Synap
Server Details
Open AI models through one OpenAI-compatible API: chat, live model list, prices and cost estimates.
- Status
- Healthy
- Uptime
- 97.6% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- jimmyplup/synap-mcp
- GitHub Stars
- 0
- Server Listing
- Synap MCP Server
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: model discovery (list/get), cost estimation, and chat execution. The descriptions explicitly clarify boundaries, such as using estimate_cost before chat_completion.
All tools use the consistent synap_ prefix followed by snake_case names (list_models, get_model, estimate_cost, chat_completion). The pattern is predictable and readable.
With 4 tools, the set is well-scoped for an inference API: model listing, detail retrieval, cost estimation, and chat completion. Each tool earns its place without redundancy.
The tools cover the full lifecycle for using Synap's chat completion API: discover models, inspect details, estimate cost, and execute a completion. No obvious dead ends for the stated purpose.
Available Tools
4 toolssynap_chat_completionRun a chat completion on SynapAInspect
Send a conversation to a model on Synap, Linkrra's OpenAI-compatible inference API, and get the model's reply. Use this when you need text generated, code written or a question answered by one of the open models Synap serves. This is the only tool here that costs money: it bills prompt and completion tokens to the Synap API key supplied as the Authorization: Bearer header on the MCP connection. With no key it returns an error and nothing is spent; a key with no balance returns insufficient_credits. Call synap_estimate_cost first if the price matters. Returns the standard OpenAI chat.completion JSON (choices[0].message.content holds the reply, usage holds token counts). The call is not streamed and keeps no memory between calls — send the full message history each time.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id exactly as returned by synap_list_models, e.g. "qwen3-coder-30b". Use "synap-v1" to let Synap pick the cheapest model that can handle the request. | |
| messages | Yes | The conversation so far, oldest first. The last message is normally the user turn to answer. | |
| max_tokens | No | Upper limit on tokens generated in the reply. Omit to use the model default; lower it to cap cost. | |
| temperature | No | Sampling randomness, 0 to 2. Lower is more deterministic. Omit to use the model default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring openWorldHint=true and non-idempotence, the description still adds real behavioral context beyond them: billing of prompt+completion tokens to the connection's API key, two distinct failure modes (missing key -> error with nothing spent, no balance -> insufficient_credits), no streaming, and no memory between calls. This is exactly the kind of disclosure an agent needs before spending money.
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?
Purpose is front-loaded in the first sentence, followed by usage, cost, failure modes, and return shape in a logical order. It is dense with six sentences, but nearly every sentence carries distinct operational value; only the cost/sibling routing sentence slightly overlaps the usage sentence.
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 paid, non-idempotent inference call with no output schema, the description covers what the agent cannot derive from structured fields: auth requirements, cost model, error semantics, statelessness, and the response payload shape. Nothing material is missing for 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?
Schema description coverage is 100%, so the baseline is 3, and the description exceeds it by adding the statelessness requirement that forces the agent to resend the full message history each call, plus the return-format mapping (choices[0].message.content, usage). It does not add syntax detail for max_tokens or temperature beyond what the schema already 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 states a specific verb and resource ('Send a conversation to a model on Synap... get the model's reply') and names the concrete capability set (text generation, code, Q&A). It is trivially distinguishable from the sibling tools, which are all read/informational (list models, get model, estimate cost).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions ('when you need text generated, code written or a question answered') and routes to the alternative 'Call synap_estimate_cost first if the price matters.' The cost caveat ('the only tool here that costs money') sharpens the choice against its free siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synap_estimate_costEstimate the cost of a Synap callARead-onlyIdempotentInspect
Work out what a chat completion would cost on Synap from token counts, using the live price list. Use this before synap_chat_completion when budget matters, or to compare models for a job. Free, read-only, needs no API key and runs no model. Returns {model, prompt_tokens, completion_tokens, prompt_usd, completion_usd, total_usd, pricing}. It is an estimate: the real charge uses the token counts the model reports afterwards. Auto-routing ids such as "synap-v1" have no fixed price and return an error saying so.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id exactly as returned by synap_list_models. | |
| prompt_tokens | Yes | Tokens you will send (system + conversation). Roughly 4 characters of English per token. | |
| completion_tokens | No | Tokens you expect back. Use your max_tokens for a worst case. Defaults to 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real behavioral context beyond them: it is free, needs no API key, runs no model, is an estimate that may differ from the post-hoc real charge, and errors on auto-routing ids. It also enumerates the returned fields, which matters because there is no output schema.
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?
Four tight sentences, front-loaded with what the tool does, then when to use it, then the return shape and the estimate caveat. The return-field list earns its place precisely because no output schema exists.
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 pure read-only estimation tool with no output schema, the description supplies everything an agent needs: purpose, timing, cost/free status, auth-free nature, return shape, precision caveat, and error condition.
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 all three parameters (model, prompt_tokens, completion_tokens) are already documented with units, minimums, and guidance on using max_tokens for a worst case. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.
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?
States a precise verb+resource (estimate the cost of a chat completion on Synap) and the input basis (token counts, live price list). It is clearly distinguishable from synap_chat_completion, synap_list_models, and synap_get_model without opening any schema.
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?
Gives explicit usage conditions: use before synap_chat_completion when budget matters, or to compare models for a job. It also names the failure case (auto-routing ids like synap-v1 have no fixed price and error out), which routes the agent correctly for the edge scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synap_get_modelGet one Synap model in fullARead-onlyIdempotentInspect
Return the complete catalogue record for one Synap model: pricing, context and output limits, supported parameters, quantisation, data-retention policy and readiness. Use this after synap_list_models when you need details the summary leaves out. Free, read-only and needs no API key. Returns the raw model object, or an error naming the id if Synap does not serve it.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id exactly as returned by synap_list_models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond them: it states the call is free, requires no API key, and that failures return an error naming the id rather than silently failing. It stops short of describing response shape or rate limits, so 4 rather than 5.
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?
Four short sentences, front-loaded with what is returned and then why/when to use it. Every sentence carries distinct information (content, routing, cost/auth, error behaviour) with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must say what comes back, and it does ('the raw model object, or an error naming the id'). Combined with the auth/cost note and the sibling routing, an agent has everything needed to invoke it 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 100% and there is a single required parameter, so the schema already documents that 'model' is the id from synap_list_models. The description adds no syntax, casing, or format detail beyond what the schema states, making this the baseline 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?
States a precise verb and resource ('Return the complete catalogue record for one Synap model') and enumerates the exact fields covered (pricing, limits, parameters, quantisation, retention, readiness). It also explicitly positions itself against the sibling synap_list_models, so an agent can distinguish it without opening either schema.
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?
Gives an explicit trigger ('Use this after synap_list_models when you need details the summary leaves out') and names the alternative tool plus the condition that selects it. No inference is required to choose between the two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synap_list_modelsList Synap models and pricesARead-onlyIdempotentInspect
List the models Synap serves right now, each with its price per million tokens, context window and what it is good at. Use this to choose a model id before calling synap_chat_completion, or to compare prices. Free, read-only, no API key needed, and safe to call repeatedly; the list is live, so models can appear or go between calls. Returns {"object":"list","count":N,"data":[{id,name,capability,tier,context_tokens,max_output_tokens,pricing,data_policy}]}; pricing is USD per million prompt and completion tokens and is absent for the auto-routing ids ("synap-v1"), which bill at the price of the model they route to. For every field of one model use synap_get_model.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional case-insensitive filter matched against model id, name and capability, e.g. "coder", "qwen" or "vision". Omit to list everything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, but the description adds substantial context they cannot convey: no API key required, free, safe to call repeatedly, and critically that the list is live so models may appear/disappear between calls. It also documents the return payload shape and the pricing semantics (USD per million prompt/completion tokens, absent for auto-routing ids that bill at the routed model's price).
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?
Front-loaded with purpose, then usage, then behavioral caveats, then the return shape. The inline JSON skeleton is long but justified because no output schema exists. Slightly dense, but nearly every clause carries information an agent needs before calling.
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 no output schema and annotations covering only safety, the description fully compensates: it describes the response envelope and each field, the pricing units, the auto-routing pricing exception, and the live-list volatility. Nothing needed to select and call this tool correctly 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 description coverage is 100%, and the single optional `query` parameter is fully documented there (case-insensitive, matched against id/name/capability, with examples). The description adds no meaning beyond the schema for this parameter, so the baseline of 3 applies.
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?
States a specific verb and resource ('List the models Synap serves right now') and immediately enumerates the returned attributes: price per million tokens, context window, and capability. It is clearly distinguishable from synap_chat_completion (which consumes a model id) and synap_get_model (which drills into one model).
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?
Gives explicit when-to-use conditions: choose a model id before calling synap_chat_completion, or compare prices. It also routes the agent to the alternative, synap_get_model, for the full field set of a single model, so both the positive and the negative case are covered.
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 tool update
- Changed
synap_chat_completion1 field changed- changed
Input schema / properties / model / descriptionPrevious value: -"Model id exactly as returned by synap_list_models, e.g. \"qwen/qwen3-coder-30b-a3b-instruct\". Use \"synap-v1\" to let Synap pick the cheapest model that can handle the request."New value: +"Model id exactly as returned by synap_list_models, e.g. \"qwen3-coder-30b\". Use \"synap-v1\" to let Synap pick the cheapest model that can handle the request."
4 tool updates
- Changed
synap_chat_completion10 fields changed- added
Input schema / properties / max_tokens / descriptionAdded value: +"Upper limit on tokens generated in the reply. Omit to use the model default; lower it to cap cost." - added
Input schema / properties / max_tokens / minimumAdded value: +1 - added
Input schema / properties / messages / descriptionAdded value: +"The conversation so far, oldest first. The last message is normally the user turn to answer." - added
Input schema / properties / messages / items / properties / content / descriptionAdded value: +"The message text." - added
Input schema / properties / messages / items / properties / role / descriptionAdded value: +"Who wrote the message: system (instructions), user, or assistant (an earlier model reply)." - added
Input schema / properties / messages / minItemsAdded value: +1 - changed
Input schema / properties / model / descriptionPrevious value: -"Model id — see synap_list_models for the catalogue."New value: +"Model id exactly as returned by synap_list_models, e.g. \"qwen/qwen3-coder-30b-a3b-instruct\". Use \"synap-v1\" to let Synap pick the cheapest model that can handle the request." - added
Input schema / properties / temperature / descriptionAdded value: +"Sampling randomness, 0 to 2. Lower is more deterministic. Omit to use the model default." - added
Input schema / properties / temperature / maximumAdded value: +2 - added
Input schema / properties / temperature / minimumAdded value: +0
- Added
synap_estimate_cost - Added
synap_get_model - Changed
synap_list_models1 field changed- added
Input schema / properties / queryAdded value: +{ + "description": "Optional case-insensitive filter matched against model id, name and capability, e.g. \"coder\", \"qwen\" or \"vision\". Omit to list everything.", + "type": "string" +}
2 tool updates
- First observed
synap_chat_completion - First observed
synap_list_models
Publisher details
- Operator
- Linkrra · Publisher source
- Operator website
- https://linkrra.com
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://synap.linkrra.com/docs
- Trust center
- Not available
- Restrictions
- synap_chat_completion needs a Synap API key (pay-as-you-go account). Listing models, model details and cost estimates work without a key. · Publisher source
Related MCP Connectors
Live LLM API pricing: token prices, comparisons, cheapest-model lookups. No key required.
GPT, Claude, Gemini, DeepSeek, Grok, Qwen and GLM through one API key. Pay per token.
- Kyma APIOAuthcom.kymaapi
Live model catalog with prices and measured uptime, rankings, credits and spend, spend-capped chat.
Live prices, rankings, licences and privacy of AI models: best model per task, costs, alternatives.
Related MCP Servers
- AlicenseAqualityBmaintenanceLive LLM API pricing: current token prices, model comparisons, cheapest-model lookups, and The LLM Price Index for 150+ models across 20+ providers, re-verified daily. No API key required.41MIT
- AlicenseBqualityDmaintenanceProvides a universal bridge to interact with any OpenAI-compatible LLM API (local or cloud), enabling model testing, benchmarking, quality evaluation, and chat operations with performance metrics.8MIT

Adorbis AI MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access 40+ models via one API key with automatic routing for chat, code, reasoning, and writing tasks.19 npm1MIT- AlicenseAqualityDmaintenanceOrcaRouter MCP — browse 160+ LLM models with live pricing (no API key needed for catalog) and route chat completions through the OrcaRouter gateway with automatic fallback.454 npm13MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.