Qumge: Agent Capabilities & Skills
Server Details
Find, call and pay per call: the capability layer for agents, plus skills. One key or OAuth.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 97.2% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 18 tools
The set cleanly separates the two domains (caps = paid callable services, skills = SKILL.md installs) and pairs each with distinct verbs (search/get/call vs search/get). A few tools sit close together—list_caps vs cap_status, and the legacy aliases (call_app, get_app) noted in descriptions—but descriptions disambiguate well.
Nearly all tools follow a consistent snake_case verb_noun pattern (search_caps, get_skill, publish_cap, request_payout). The one deviation is cap_status, which is noun_verb rather than the dominant verb_noun form, but overall the convention is predictable.
18 tools is on the heavier side but justified by the genuine breadth: discovery, consuming, developer publishing lifecycle, and payouts. Each tool earns its place; nothing is obviously redundant for the scope.
Covers discovery (search/list_caps, skills, categories, models, wanted), consumption (get_cap, call_cap, get_skill, get_balance), the full developer publishing funnel (become_developer, publish_cap, test_cap, submit_cap, cap_status, verify_domain), and money (get_earnings, request_payout). Gaps are minor: no explicit update/unpublish/delete operation for an existing cap.
Available Tools
18 toolsbecome_developerAInspect
Open a developer account for the user (needs their qumge key). There is no review and no waiting: it takes effect immediately, and publish_cap works right after. Give a display name and an ISO country code; the country decides tax and payout rails later. Payout details and legal name are only needed when the user actually withdraws money.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO code like "US" or "CN" (a full country name also works). | |
| username | No | Required if the account has no username yet: 3–30 letters, digits, _ or -. It becomes the public page /u/<username>. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. | |
| entity_type | No | individual (default) or company. | |
| display_name | Yes | The name shown on their app pages. | |
| social_links | No | Up to 6 public URLs (X, GitHub, LinkedIn, their website). The kind is guessed from the domain. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| country | Yes | |
| display_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that there is no review or wait, that it takes effect immediately, that publish_cap becomes usable right after, and that country choice determines tax and payout rails later. It omits idempotency/repeat-call behavior and what happens if the user is already a developer.
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?
Three tightly written sentences, front-loaded with the core action and immediately followed by the behavioral reassurance (no review, immediate effect) and the deferred-requirement note. No filler.
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 an account-creation tool with an output schema and full param coverage, the description supplies the prerequisites, side effects, and downstream dependency the agent needs. The main gap is the absence of guidance on repeat invocation or existing-account handling.
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%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it explains that country drives tax and payout rails downstream and that display name/country are the immediate requirements, while qumge key and legal details are contextual.
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 opens with a specific verb and resource ('Open a developer account for the user') and situates it in the workflow by noting 'publish_cap works right after', which cleanly separates it from the publish/payout 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?
It gives clear context for when this applies (onboarding a user before publishing) and states a prerequisite (the qumge key), plus it clarifies that payout details and legal name are deferred to withdrawal time. There is no explicit 'when-not' case, such as what to do if the account already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_capInspect
Call a Cap on the user's behalf and return its response. Use this when you cannot make the HTTP call yourself: qumge charges the user's qumge balance and forwards the call at the same price as calling it over HTTP through Qumge. Operations and prices come from get_cap. Prefer operation + input: when the operation declares an input_schema, input is validated against it before anything is charged or forwarded. Needs the user's qumge key in the Authorization header. A 5xx from the Cap is free; a 402 means the user's balance or this Cap's monthly limit stopped it. (Older clients may still call this tool as call_app — it still works.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Request body. An object is sent as JSON; a string is sent as-is. | |
| path | No | The route path from get_cap, e.g. '/api/videos'. A query string may be appended or passed separately in `query`. | |
| slug | Yes | The Cap's slug, from search_caps. | |
| input | No | Arguments for the operation. Validated against its input_schema when it has one — an invalid input is refused as a tool error (isError), and nothing is charged or forwarded. | |
| query | No | Query string without the leading '?'. | |
| accept | No | Optional Accept header. | |
| method | No | HTTP method. Default GET — the routes and their methods are in get_cap. | |
| operation | No | Operation name from get_cap (a route's `name`). Use with `input`; takes precedence over `path`/`method` when both are given. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. | |
| content_type | No | Only needed when `body` is a string and the app expects a specific type. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | Yes | |
| path | Yes | |
| binary | No | |
| method | Yes | |
| status | Yes | |
| call_id | No | |
| free_call | No | Set when this call used one of the operation's free calls (users who have topped up). |
| truncated | No | |
| body_bytes | No | |
| direct_url | No | |
| content_type | No | |
| charged_micro_usd | No | |
| remaining_micro_usd | No |
cap_statusInspect
Check one of the developer's own capabilities: its status (draft / review / live / suspended) and how far the publishing checklist has got. Needs the developer's Qumge key. (Older clients may still call this tool as app_status.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The Cap's slug. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | Yes | |
| checks | Yes | |
| status | Yes | |
| reviewer_note | No |
get_balanceInspect
The user's Qumge balance, plus what each Cap has spent this month against its monthly limit. Call this before a paid call when the user asks whether they can afford it, and after a 402 that says the balance or a limit stopped the call — it returns the top-up link to hand to the user. Needs the user's qumge key.
| Name | Required | Description | Default |
|---|---|---|---|
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| caps | No | |
| topup_url | No | |
| frozen_micro_usd | No | |
| balance_micro_usd | Yes | |
| available_micro_usd | Yes | |
| withdrawable_micro_usd | Yes |
get_capInspect
Fetch one Cap's operations, prices and how to call it, by the slug returned from search_caps. Call this before using a Cap: it lists each operation (by name), its input and output schema when the developer provided one, which routes are billable, the per-call maximum, when the call settles, and the error codes the caller may see. If the request carries the user's Qumge key, it also reports that user's monthly limit for this Cap. (Older clients may still call this tool as get_app — it still works.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The Cap's slug, e.g. 'autowhisper'. Comes from search_caps. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| slug | Yes | |
| summary | No | |
| operations | Yes | |
| price_line | Yes | |
| monthly_limit_micro_usd | No | |
| spent_this_month_micro_usd | No |
get_earningsInspect
What a developer has earned and what is payable: the amount still inside the 30-day holdback, the amount sitting in their wallet (income from Caps — the only part that can be withdrawn), and what has already been paid out, with the most recent entries. Matured purchase amounts move into the wallet automatically. Needs the developer's Qumge key.
| Name | Required | Description | Default |
|---|---|---|---|
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| entries | No | |
| next_payable_on | No | |
| pending_payouts | No | |
| frozen_micro_usd | No | |
| payable_micro_usd | Yes | |
| pending_micro_usd | Yes | |
| paid_net_micro_usd | No | |
| paid_gross_micro_usd | No |
get_skillAInspect
Fetch the full SKILL.md content of one skill, by the slug returned from search_skills. Write the returned markdown to .claude/skills//SKILL.md (or the equivalent for the user's agent). If the reply says the skill ships more files (REFERENCE.md, scripts/…), call again with include_files: true to get them and write each next to SKILL.md.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The skill's slug, e.g. 'AgriciDaniel/claude-seo/seo-google'. Comes from search_skills. | |
| include_files | No | Also return the full text of the other files in the skill's folder. Off by default — they can be hundreds of KB. Use it when installing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| slug | Yes | |
| files | No | |
| skill_md | Yes | |
| source_url | No | |
| include_files | No | |
| skipped_files | No | |
| skills_page_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'Fetch' implies a read operation and the description adds useful output-handling context (write to SKILL.md, call again with include_files if extra files are indicated). However, it does not state auth needs, rate limits, error behavior, or explicit read-only safety, leaving clear gaps.
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-loads what the tool does, then gives output-handling and conditional-call guidance in three efficient sentences. No filler, though the file-writing instruction is slightly more workflow guidance than core tool definition.
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?
Output schema exists, so return values need not be explained, and complexity is low. The description covers purpose, slug source, output handling, and the optional include_files path, making it complete for an agent to invoke 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 coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it explains that slug comes from search_skills and gives a concrete trigger for include_files (when the reply says the skill ships more files).
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: fetch the full SKILL.md content of one skill, by slug. It also names the sibling search_skills as the source of the slug, letting an agent distinguish it from search tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly explains the prerequisite (slug from search_skills) and gives a conditional second call when the reply indicates additional files. It stops short of explicit when-not-to-use guidance, but the retrieval context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capsInspect
List the developer's own Caps with their status (draft / live / suspended) and slug. Use it before publishing to see what already exists, and after to check what went live. Needs the developer's qumge key. (Older clients may still call this tool as list_apps.)
| Name | Required | Description | Default |
|---|---|---|---|
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| caps | Yes |
list_categoriesAInspect
List the skill categories and how many skills are in each. Useful when the user is browsing rather than looking for something specific.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | Yes | |
| categories | Yes |
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 discloses the return shape at a high level (categories with counts), but says nothing about ordering, pagination, or which skill universe is counted. For a zero-parameter read-only listing tool this is acceptable but thin.
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 short sentences, zero waste, with the core purpose front-loaded and the usage hint second. Nothing is redundant with the schema.
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?
An output schema exists, so the description needn't explain return values, and with no input parameters the surface is small. The only gaps are ordering/scope details, which are minor for a browsing-oriented listing 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 tool takes no parameters, so there is nothing for the description to clarify; the baseline of 4 applies. It correctly does not invent inputs that don't exist.
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 skill categories') plus the aggregate it returns ('how many skills are in each'), which distinguishes it from siblings like search_skills and get_skill. It stops short of explicitly naming those siblings, but the resource is unambiguous.
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?
'Useful when the user is browsing rather than looking for something specific' gives a clear use context that implicitly contrasts with targeted lookups such as search_skills or get_skill. No explicit alternative tool is named, so it falls short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsAInspect
List the models this gateway can route to, best first. Every one is reachable with the same Qumge key — no per-vendor signup. Only tool-calling models are listed: an agent cannot use the others.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return. Default 20, max 60. | |
| query | No | Optional. Filter by name or vendor, e.g. 'claude', 'gemini'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| total | Yes | |
| models | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers real operational context: a single Qumge key covers every vendor with no per-vendor signup, and non-tool-calling models are excluded ('an agent cannot use the others'). It does not mention pagination limits (left to the schema) or error behavior, so it falls short of exhaustive.
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?
Three tight sentences, front-loaded with the action and ordering before the two caveats. Every sentence carries information an agent cannot get from the schema.
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?
An output schema exists, so return values need not be described, and parameters are fully covered by the schema. The description supplies the essential caveats (tool-calling-only, unified key, best-first ordering); only explicit usage guidance is absent.
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 both parameters (limit, query) are already fully documented. The description only obliquely relates to ordering via 'best first' and adds no syntax or semantics for the parameters beyond the schema. 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 specific verb and resource ('List the models this gateway can route to') plus meaningful scope constraints: ordering ('best first') and eligibility ('Only tool-calling models'). The sibling set (caps, skills, domains, payouts) is unrelated, so no differentiation is needed.
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?
Usage is implied – call it to discover routable models – but there is no explicit when-to-use, when-not-to-use, or named alternative. Since no sibling overlaps in function, the omission is low-risk rather than misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wantedInspect
What agents searched for on Qumge and found nothing: the demand side of the store, in the searchers' own words, with how often each was searched in the last 7 and 30 days. Useful before building or publishing a Cap — it tells you what people already want. Only the search text is stored; no user and no IP.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return. Default 20, max 50. |
Output Schema
| Name | Required | Description |
|---|---|---|
| wanted | Yes |
publish_capInspect
Every billed operation must deliver one complete result for one clear input (e.g. product URL in → finished video out); helper steps such as job status are free, and a result that needs several calls is wrapped into one endpoint — never sell partial steps. Do not publish tools or endpoints that act on the caller's own account or data (their notes, settings, balance): every buyer's call is forwarded with the same developer token, so they would all act on one account — sell an account-free input → result operation instead, or use the signed integration and tell buyers apart by the Qumge-User header. Publish a Cap (short for capability) to Qumge on the developer's behalf (needs the developer's Qumge key in the Authorization header). Give it a name and either the API's HTTPS base_url or, for an existing remote MCP server, its mcp_url; and — if you can read them off the project — its price book (events with a unit price) and operations (routes with a per-call ceiling, and a doc describing input/output so agents know what to send). It returns a DRAFT Cap plus the signing secret and usage key (shown once). Nothing is charged while it is a draft. There is no human review: after test_cap passes, submit_cap takes the Cap live immediately, and qumge spot-checks it afterwards (a spot check can suspend it). (Older clients may still call this tool as publish_app.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human name shown in the store. | |
| slug | No | Optional URL slug. Derived from the name when omitted. With manifest_url: picks which Cap in the file to publish. | |
| events | No | Price book events. unit_price_usd is in US dollars, e.g. 0.10. | |
| routes | No | HTTP routes. Billable routes need hold_usd (the most one call may cost). | |
| mcp_url | No | Optional: publish an existing remote MCP server instead of an HTTP API. Must be https. The domain does not need to be verified to go live, but earnings stay frozen until verify_domain passes for it. Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. A tools/call is charged at the price you set only when it comes back 2xx and the tool did not fail; non-2xx, timeouts, a tool result with isError: true and JSON-RPC errors are free. | |
| summary | No | One line describing what it does. | |
| base_url | No | Where the API lives. Must be https. Required unless you give mcp_url. Any path in it (https://host/v2) is part of what your server receives and is covered by the signature. | |
| keywords | No | Other names for the same thing, any language, up to 20. Agents search with a request like "scrape trending TikTok videos" — the keywords are what makes that find this app. | |
| metering | No | reported (the app tells us what to charge) or balance_delta (we read its balance). | |
| auth_mode | No | How qumge calls the service. signature (default): we sign each request and the service verifies it and answers GET /qumge/ping — code to write. api_key: the service is an existing API; we call it with the developer's own key (upstream_token) and nothing in it changes. api_key routes must be exact paths (no * or {}) and billed per call (meter: platform). | |
| mcp_tools | No | Prices for the MCP tools you want listed. Tools you leave out are not published and are reported back to you. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. | |
| unit_name | No | What users buy, e.g. credit. | |
| skill_slug | No | Optional. Attach an existing skill from the catalog to this app (its documentation then shows on the app page). Ignored if the slug is unknown. | |
| support_url | No | Where users ask for help. Shown on the app page. | |
| balance_path | No | Only for balance_delta: where we read the balance. | |
| manifest_url | No | Optional: publish from the project's qumge.json instead of passing everything by hand. Give https://<domain>/.well-known/qumge.json (or the service address). Its prices are suggestions: confirm them with the developer before submit_cap. With several Caps in the file, pass `slug` to pick one (one call per Cap). Spec: https://qumge.com/docs/caps/manifest | |
| social_links | No | Up to 6 public URLs for the developer (X, GitHub, LinkedIn, their website). Shown on every app page. The kind is guessed from the domain. | |
| upstream_token | No | The developer's own API key for their service. Required for auth_mode api_key (and for balance_delta, and with manifest_url when the file's endpoint auth is api_key). Stored encrypted; sent as Authorization: Bearer. | |
| balance_json_path | No | Only for balance_delta: where in that response. | |
| refund_policy_url | No | Their refund policy, if they have one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| slug | Yes | |
| status | Yes | |
| usage_key | No | |
| skipped_tools | No | |
| signing_secret | No | |
| price_book_version | No |
request_payoutInspect
Ask for a payout of the developer's payable balance (Cap income only — topped-up money cannot be withdrawn). Call it once without confirmed to get the estimate (amount, channel fee, withholding tax, what actually lands), show that to the user, and only then call again with confirmed: true. Needs the developer's Qumge key.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | Set true only after the user has seen the estimate and agreed. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. | |
| amount_usd | Yes | How much to withdraw, in US dollars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| payout_id | No | |
| requested | Yes | |
| fee_micro_usd | No | |
| net_micro_usd | No | |
| amount_micro_usd | Yes | |
| withholding_tax_micro_usd | No |
search_capsInspect
Search Qumge's Caps — paid services an agent can call, billed per call from the user's Qumge balance. A Cap (short for capability) is one finished job: somebody's API or MCP server with a price list; to you it is a set of operations. Use this when the user wants something done rather than a skill to install: 'make a promo video', 'transcribe this call'. Returns the best few with pricing, measured success rate and latency, and the slug to pass to get_cap. (Older clients may still call this tool as search_apps — it still works.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return. Default 5, max 10. | |
| query | No | What the user wants done, in their own words. Omit to browse the most-used Caps. | |
| max_price_usd | No | Optional ceiling: drop Caps whose per-call price is above this, in US dollars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| query | No | |
| results | Yes | |
| returned | No |
search_skillsInspect
Search Qumge's curated catalog of agent skills (SKILL.md files) by what the user wants to accomplish. Use this whenever the user asks for a skill, tool, or Cap — e.g. 'find me a skill for social media automation', 'is there a skill for SEO audits'. Returns the best few, ranked by how useful they actually are (an LLM read each one), with a one-line summary and the exact slug to pass to get_skill.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return. Default 5, max 10. | |
| query | No | What the user wants to do, in their own words. e.g. 'automate posting to social media', 'extract tables from PDFs'. Omit it to browse the top-ranked skills instead. | |
| offset | No | Skip this many results — for paging through a long list. | |
| category | No | Optional. Narrow to one category. Call list_categories to see them. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| offset | No | |
| results | Yes | |
| has_more | No | |
| returned | No | |
| category_scheme | Yes | Which taxonomy the results' category values come from: "domain" for browse (no query), "fine" for a search. |
| searched_in_english_as | No |
submit_capInspect
Take one of the developer's Caps live. Nothing is reviewed before launch and nobody approves it: when the three code-checked items pass (signature, end-to-end, price book), this publishes the Cap immediately and agents can call it — and be charged — from then on. Run test_cap first (it records signature + end-to-end; the price book is recorded when it saves). Qumge spot-checks docs and support afterwards and can suspend the Cap. Needs the developer's Qumge key. (Older clients may still call this tool as submit_app_review.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The Cap's slug. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| status | Yes |
test_capInspect
Run a Cap's connection test and end-to-end self-test, and record both results on its publishing checklist. Do this after publish_cap, before submit_cap. The connection test sends three requests to base_url + /qumge/ping (correctly signed, wrong secret, and a 10-minute-old timestamp — only the first may succeed); the end-to-end test calls one free and one billable operation directly on the Cap (nothing is charged) and, for a route the Cap reports itself, waits 2 seconds for its usage report. An MCP Cap has each listed tool called once instead. It warns (without blocking) about billed operations that have no doc. Needs the developer's Qumge key. (Older clients may still call this tool as test_app.)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The Cap's slug. | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| missing | No | |
| connection_passed | No | |
| end_to_end_passed | Yes | |
| connection_summary | No | |
| end_to_end_summary | No |
verify_domainInspect
Prove the developer owns the domain of their MCP server or API. Going live does not need it: an unverified Cap is live and charges callers, but the developer's earnings from it stay frozen until this passes — verifying releases them. Call with the service's https url: if the domain (or a parent domain) is already verified it says so; otherwise it returns a one-line file to serve at /.well-known/qumge-verify.txt on that host (or a DNS TXT record with the same line). Put the file into the project so it ships with the next deploy, then call again with check: true. Needs the developer's Qumge key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The service's https url, e.g. https://api.example.com/mcp | |
| check | No | true = look for the line now (after the user deployed it). | |
| qumge_key | No | Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| put_at | No | |
| dns_txt | No | |
| verified | Yes | |
| verification_line | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- Changed
call_cap1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The cap's slug, from search_caps."New value: +"The Cap's slug, from search_caps."
- Changed
cap_status1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The cap's slug."New value: +"The Cap's slug."
- Changed
get_cap1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The cap's slug, e.g. 'autowhisper'. Comes from search_caps."New value: +"The Cap's slug, e.g. 'autowhisper'. Comes from search_caps."
- Changed
publish_cap2 fields changed- changed
Input schema / properties / manifest_url / descriptionPrevious value: -"Optional: publish from the project's qumge.json instead of passing everything by hand. Give https://<domain>/.well-known/qumge.json (or the service address). Its prices are suggestions: confirm them with the developer before submit_cap. With several capabilities in the file, pass `slug` to pick one (one call per capability). Spec: https://qumge.com/docs/caps/manifest"New value: +"Optional: publish from the project's qumge.json instead of passing everything by hand. Give https://<domain>/.well-known/qumge.json (or the service address). Its prices are suggestions: confirm them with the developer before submit_cap. With several Caps in the file, pass `slug` to pick one (one call per Cap). Spec: https://qumge.com/docs/caps/manifest" - changed
Input schema / properties / slug / descriptionPrevious value: -"Optional URL slug. Derived from the name when omitted. With manifest_url: picks which capability in the file to publish."New value: +"Optional URL slug. Derived from the name when omitted. With manifest_url: picks which Cap in the file to publish."
- Changed
search_caps2 fields changed- changed
Input schema / properties / max_price_usd / descriptionPrevious value: -"Optional ceiling: drop caps whose per-call price is above this, in US dollars."New value: +"Optional ceiling: drop Caps whose per-call price is above this, in US dollars." - changed
Input schema / properties / query / descriptionPrevious value: -"What the user wants done, in their own words. Omit to browse the most-used caps."New value: +"What the user wants done, in their own words. Omit to browse the most-used Caps."
- Changed
submit_cap1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The cap's slug."New value: +"The Cap's slug."
- Changed
test_cap1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The cap's slug."New value: +"The Cap's slug."
1 tool update
- Changed
publish_cap1 field changed- changed
Input schema / properties / mcp_url / descriptionPrevious value: -"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https. The domain does not need to be verified to go live, but earnings stay frozen until verify_domain passes for it. Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free."New value: +"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https. The domain does not need to be verified to go live, but earnings stay frozen until verify_domain passes for it. Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. A tools/call is charged at the price you set only when it comes back 2xx and the tool did not fail; non-2xx, timeouts, a tool result with isError: true and JSON-RPC errors are free."
10 tool updates
- Changed
cap_status1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
get_earnings1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
get_skill1 field changed- removed
Input schema / properties / qumge_keyRemoved value: -{ - "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", - "type": "string" -}
- Changed
list_models1 field changed- removed
Input schema / properties / qumge_keyRemoved value: -{ - "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", - "type": "string" -}
- Changed
request_payout1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
search_caps1 field changed- removed
Input schema / properties / qumge_keyRemoved value: -{ - "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", - "type": "string" -}
- Changed
search_skills1 field changed- removed
Input schema / properties / qumge_keyRemoved value: -{ - "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", - "type": "string" -}
- Changed
submit_cap1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
test_cap1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
verify_domain1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
1 tool update
- Changed
call_cap1 field changed- changed
Input schema / properties / input / descriptionPrevious value: -"Arguments for the operation. Validated against its input_schema when it has one — an invalid input is refused with 422, and nothing is charged or forwarded."New value: +"Arguments for the operation. Validated against its input_schema when it has one — an invalid input is refused as a tool error (isError), and nothing is charged or forwarded."
4 tool updates
- Changed
call_cap1 field changed- added
Output schema / properties / free_callAdded value: +{ + "description": "Set when this call used one of the operation's free calls (users who have topped up).", + "properties": { + "limit": { + "type": "integer" + }, + "pending": { + "type": "boolean" + }, + "remaining": { + "type": "integer" + }, + "used": { + "type": "integer" + } + }, + "type": [ + "object", + "null" + ] +}
- Changed
get_cap1 field changed- added
Output schema / properties / operations / items / properties / free_callsAdded value: +{ + "description": "First N calls per user are free (accounts that have topped up; failed calls don't count).", + "type": "integer" +}
- Changed
publish_cap3 fields changed- added
Input schema / properties / manifest_urlAdded value: +{ + "description": "Optional: publish from the project's qumge.json instead of passing everything by hand. Give https://<domain>/.well-known/qumge.json (or the service address). Its prices are suggestions: confirm them with the developer before submit_cap. With several capabilities in the file, pass `slug` to pick one (one call per capability). Spec: https://qumge.com/docs/caps/manifest", + "type": "string" +} - changed
Input schema / properties / slug / descriptionPrevious value: -"Optional URL slug. Derived from the name when omitted."New value: +"Optional URL slug. Derived from the name when omitted. With manifest_url: picks which capability in the file to publish." - changed
Input schema / properties / upstream_token / descriptionPrevious value: -"The developer's own API key for their service. Required for auth_mode api_key (and for balance_delta). Stored encrypted; sent as Authorization: Bearer."New value: +"The developer's own API key for their service. Required for auth_mode api_key (and for balance_delta, and with manifest_url when the file's endpoint auth is api_key). Stored encrypted; sent as Authorization: Bearer."
- Changed
search_caps1 field changed- added
Output schema / properties / results / items / properties / free_callsAdded value: +{ + "additionalProperties": { + "type": "integer" + }, + "description": "Operation name → how many calls each topped-up user gets free.", + "type": "object" +}
2 tool updates
- Changed
get_earnings2 fields changed- added
Output schema / properties / entries / items / properties / frozen_hostAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / frozen_micro_usdAdded value: +{ + "type": "integer" +}
- Changed
publish_cap1 field changed- changed
Input schema / properties / mcp_url / descriptionPrevious value: -"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https and on a domain you have verified: call verify_domain(url:) to get the line, ship it with the next deploy, then verify_domain(url:, check: true). Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free."New value: +"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https. The domain does not need to be verified to go live, but earnings stay frozen until verify_domain passes for it. Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free."
2 tool updates
- Changed
publish_cap1 field changed- changed
Input schema / properties / mcp_url / descriptionPrevious value: -"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https and on a domain you have verified (Profile → links). Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free."New value: +"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https and on a domain you have verified: call verify_domain(url:) to get the line, ship it with the next deploy, then verify_domain(url:, check: true). Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free."
- Added
verify_domain
1 tool update
- Changed
become_developer1 field changed- added
Input schema / properties / usernameAdded value: +{ + "description": "Required if the account has no username yet: 3–30 letters, digits, _ or -. It becomes the public page /u/<username>.", + "type": "string" +}
1 tool update
- Changed
publish_cap2 fields changed- added
Input schema / properties / auth_modeAdded value: +{ + "description": "How qumge calls the service. signature (default): we sign each request and the service verifies it and answers GET /qumge/ping — code to write. api_key: the service is an existing API; we call it with the developer's own key (upstream_token) and nothing in it changes. api_key routes must be exact paths (no * or {}) and billed per call (meter: platform).", + "enum": [ + "signature", + "api_key" + ], + "type": "string" +} - added
Input schema / properties / upstream_tokenAdded value: +{ + "description": "The developer's own API key for their service. Required for auth_mode api_key (and for balance_delta). Stored encrypted; sent as Authorization: Bearer.", + "type": "string" +}
1 tool update
- Changed
publish_cap3 fields changed- changed
Input schema / properties / base_url / descriptionPrevious value: -"Where the app lives. Must be https."New value: +"Where the API lives. Must be https. Required unless you give mcp_url. Any path in it (https://host/v2) is part of what your server receives and is covered by the signature." - changed
Input schema / properties / mcp_url / descriptionPrevious value: -"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https and on a domain you have verified (Profile → links). Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Calls are billed per successful (2xx) tools/call at the price you set."New value: +"Optional: publish an existing remote MCP server instead of an HTTP API. Must be https and on a domain you have verified (Profile → links). Qumge calls tools/list to discover the tools, and every tool you price with `mcp_tools` becomes one operation. Billing looks at the HTTP status only: every tools/call that comes back 2xx is charged at the price you set — including a tool result with isError: true. Non-2xx and timeouts are free." - changed
Input schema / requiredPrevious value: -[ - "name", - "base_url" -]New value: +[ + "name" +]
2 tool updates
- Changed
get_cap1 field changed- added
Output schema / properties / operations / items / properties / meterAdded value: +{ + "description": "\"platform\" means Qumge counts one unit per successful (2xx) call at the unit price — a failing call is free.", + "enum": [ + "app", + "platform" + ] +}
- Changed
publish_cap1 field changed- added
Input schema / properties / routes / items / properties / meterAdded value: +{ + "description": "Who counts the usage. \"app\" (default): your service reports after each call. \"platform\": Qumge counts one unit per successful (2xx) call at your declared price — use this when a call always costs the same, and you only have to write the signature check, no usage reporting.", + "enum": [ + "app", + "platform" + ], + "type": "string" +}
2 tool updates
- Changed
list_categories2 fields changed- added
Output schema / properties / domainsAdded value: +{ + "items": { + "properties": { + "key": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "key", + "title" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "categories" -]New value: +[ + "categories", + "domains" +]
- Changed
search_skills3 fields changed- added
Output schema / properties / category_schemeAdded value: +{ + "description": "Which taxonomy the results' category values come from: \"domain\" for browse (no query), \"fine\" for a search.", + "enum": [ + "domain", + "fine" + ] +} - added
Output schema / properties / results / items / properties / category / descriptionAdded value: +"Category under the scheme named by category_scheme: a domain key when it is \"domain\", a fine category when it is \"fine\"; null when the entry has none." - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "category_scheme" +]
2 tool updates
- Changed
get_cap1 field changed- changed
Output schema / requiredPrevious value: -[ - "slug", - "operations" -]New value: +[ + "slug", + "name", + "price_line", + "operations" +]
- Changed
search_skills3 fields changed- added
Output schema / properties / results / items / properties / categoryAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / vettedAdded value: +{ + "type": "boolean" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "slug", - "name", - "summary" -]New value: +[ + "slug", + "name", + "summary", + "category", + "vetted" +]
17 tool updates
- Changed
become_developer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "country": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "display_name", + "country" + ], + "type": "object" +}
- Changed
call_cap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "binary": { + "type": "boolean" + }, + "body": { + "type": "string" + }, + "body_bytes": { + "type": "integer" + }, + "call_id": { + "type": [ + "string", + "null" + ] + }, + "charged_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "content_type": { + "type": [ + "string", + "null" + ] + }, + "direct_url": { + "type": "string" + }, + "method": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remaining_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "status", + "method", + "path", + "body" + ], + "type": "object" +}
- Changed
cap_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "checks": { + "additionalProperties": { + "properties": { + "note": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "reviewer_note": { + "type": [ + "string", + "null" + ] + }, + "slug": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "slug", + "status", + "checks" + ], + "type": "object" +}
- Changed
get_balance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "available_micro_usd": { + "type": "integer" + }, + "balance_micro_usd": { + "type": "integer" + }, + "caps": { + "items": { + "properties": { + "monthly_limit_micro_usd": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "spent_this_month_micro_usd": { + "type": "integer" + } + }, + "required": [ + "slug", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "frozen_micro_usd": { + "type": "integer" + }, + "topup_url": { + "type": "string" + }, + "withdrawable_micro_usd": { + "type": "integer" + } + }, + "required": [ + "balance_micro_usd", + "available_micro_usd", + "withdrawable_micro_usd" + ], + "type": "object" +}
- Changed
get_cap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "monthly_limit_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "name": { + "type": "string" + }, + "operations": { + "items": { + "properties": { + "billable": { + "type": "boolean" + }, + "doc": { + "type": [ + "object", + "null" + ] + }, + "max_per_call_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "method": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "pattern": { + "type": "string" + }, + "settles": { + "type": [ + "string", + "null" + ] + }, + "unit": { + "type": [ + "string", + "null" + ] + }, + "unit_price_micro_usd": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "method", + "pattern", + "billable" + ], + "type": "object" + }, + "type": "array" + }, + "price_line": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "spent_this_month_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "summary": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "slug", + "operations" + ], + "type": "object" +}
- Changed
get_earnings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "entries": { + "items": { + "properties": { + "amount_micro_usd": { + "type": "integer" + }, + "available_at": { + "type": [ + "string", + "null" + ] + }, + "date": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "date", + "type", + "amount_micro_usd" + ], + "type": "object" + }, + "type": "array" + }, + "next_payable_on": { + "type": [ + "string", + "null" + ] + }, + "paid_gross_micro_usd": { + "type": "integer" + }, + "paid_net_micro_usd": { + "type": "integer" + }, + "payable_micro_usd": { + "type": "integer" + }, + "pending_micro_usd": { + "type": "integer" + }, + "pending_payouts": { + "type": "integer" + } + }, + "required": [ + "pending_micro_usd", + "payable_micro_usd" + ], + "type": "object" +}
- Changed
get_skill1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files": { + "items": { + "properties": { + "content": { + "type": [ + "string", + "null" + ] + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "type": "array" + }, + "include_files": { + "type": "boolean" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "skill_md": { + "type": "string" + }, + "skills_page_url": { + "type": "string" + }, + "skipped_files": { + "items": { + "type": "string" + }, + "type": "array" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "slug", + "name", + "skill_md" + ], + "type": "object" +}
- Changed
list_caps1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "caps": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "self_tests_passed": { + "type": [ + "integer", + "null" + ] + }, + "self_tests_total": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "status": { + "type": "string" + }, + "suspended_reason": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "slug", + "name", + "status" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "caps" + ], + "type": "object" +}
- Changed
list_categories1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "categories": { + "items": { + "properties": { + "count": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "count" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "categories" + ], + "type": "object" +}
- Changed
list_models1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "limit": { + "type": "integer" + }, + "models": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "input_price_per_mtok_usd": { + "type": "number" + }, + "name": { + "type": "string" + }, + "output_price_per_mtok_usd": { + "type": "number" + }, + "provider": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "vision": { + "type": "boolean" + } + }, + "required": [ + "id", + "provider", + "slug", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "models", + "total" + ], + "type": "object" +}
- Changed
list_wanted1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "wanted": { + "items": { + "properties": { + "query": { + "type": "string" + }, + "searches_30d": { + "type": "integer" + }, + "searches_7d": { + "type": "integer" + } + }, + "required": [ + "query", + "searches_7d", + "searches_30d" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "wanted" + ], + "type": "object" +}
- Changed
publish_cap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "name": { + "type": "string" + }, + "price_book_version": { + "type": [ + "integer", + "null" + ] + }, + "signing_secret": { + "type": [ + "string", + "null" + ] + }, + "skipped_tools": { + "items": { + "type": "string" + }, + "type": "array" + }, + "slug": { + "type": "string" + }, + "status": { + "type": "string" + }, + "usage_key": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "slug", + "name", + "status" + ], + "type": "object" +}
- Changed
request_payout1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "amount_micro_usd": { + "type": "integer" + }, + "fee_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "net_micro_usd": { + "type": [ + "integer", + "null" + ] + }, + "payout_id": { + "type": [ + "integer", + "null" + ] + }, + "requested": { + "type": "boolean" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "withholding_tax_micro_usd": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "requested", + "amount_micro_usd" + ], + "type": "object" +}
- Changed
search_caps1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "limit": { + "type": "integer" + }, + "query": { + "type": [ + "string", + "null" + ] + }, + "results": { + "items": { + "properties": { + "max_per_call_micro_usd": { + "type": "integer" + }, + "measured_calls_7d": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "p50_latency_ms": { + "type": [ + "integer", + "null" + ] + }, + "price_line": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "success_rate": { + "type": [ + "integer", + "null" + ] + }, + "summary": { + "type": "string" + } + }, + "required": [ + "slug", + "name", + "price_line" + ], + "type": "object" + }, + "type": "array" + }, + "returned": { + "type": "integer" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
search_skills1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "has_more": { + "type": "boolean" + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "results": { + "items": { + "properties": { + "first_party": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "needs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "stars": { + "type": "integer" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "slug", + "name", + "summary" + ], + "type": "object" + }, + "type": "array" + }, + "returned": { + "type": "integer" + }, + "searched_in_english_as": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
submit_cap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "slug": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "slug", + "status" + ], + "type": "object" +}
- Changed
test_cap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "connection_passed": { + "type": [ + "boolean", + "null" + ] + }, + "connection_summary": { + "type": [ + "string", + "null" + ] + }, + "end_to_end_passed": { + "type": "boolean" + }, + "end_to_end_summary": { + "type": [ + "string", + "null" + ] + }, + "missing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "slug", + "end_to_end_passed" + ], + "type": "object" +}
19 tool updates
- Removed
app_status - Removed
call_app - Added
call_cap - Added
cap_status - Removed
get_app - Added
get_cap - Added
get_earnings - Removed
list_apps - Added
list_caps - Added
list_wanted - Removed
publish_app - Added
publish_cap - Added
request_payout - Removed
search_apps - Added
search_caps - Removed
submit_app_review - Added
submit_cap - Removed
test_app - Added
test_cap
1 tool update
- Changed
publish_app2 fields changed- added
Input schema / properties / routes / items / properties / laneAdded value: +{ + "description": "standard (default: one ledger row per call) or micro — for routes priced below $0.001. A micro route must settle on_response, its per-call ceiling must be at most $0.01, and calls settle in per-minute buckets instead of one row each.", + "enum": [ + "standard", + "micro" + ], + "type": "string" +} - added
Input schema / properties / routes / items / properties / rate_limit_per_minAdded value: +{ + "description": "Micro lanes only: calls per minute per key (default 600).", + "maximum": 3000, + "minimum": 60, + "type": "integer" +}
10 tool updates
- Added
become_developer - Changed
call_app1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
get_app1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Added
get_balance - Changed
get_skill1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Added
list_apps - Changed
list_models1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
publish_app6 fields changed- added
Input schema / properties / keywordsAdded value: +{ + "description": "Other names for the same thing, any language, up to 20. Agents search with a request like \"scrape trending TikTok videos\" — the keywords are what makes that find this app.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +} - added
Input schema / properties / refund_policy_urlAdded value: +{ + "description": "Their refund policy, if they have one.", + "type": "string" +} - added
Input schema / properties / skill_slugAdded value: +{ + "description": "Optional. Attach an existing skill from the catalog to this app (its documentation then shows on the app page). Ignored if the slug is unknown.", + "type": "string" +} - added
Input schema / properties / social_linksAdded value: +{ + "description": "Up to 6 public URLs for the developer (X, GitHub, LinkedIn, their website). Shown on every app page. The kind is guessed from the domain.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / support_urlAdded value: +{ + "description": "Where users ask for help. Shown on the app page.", + "type": "string" +}
- Changed
search_apps1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
- Changed
search_skills1 field changed- added
Input schema / properties / qumge_keyAdded value: +{ + "description": "Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", + "type": "string" +}
7 tool updates
- Added
app_status - Added
call_app - Added
get_app - Added
publish_app - Added
search_apps - Added
submit_app_review - Added
test_app
Related MCP Connectors
Agent-to-agent network: find agents, negotiate deals, pay per call, escrow and payouts.
Pay-per-call tools for agents: 2,600+ APIs, OAuth connector; pay with x402 or card credits.
Give your AI assistant a real phone line. Place and end real phone calls with AI voice agents, read call transcripts, run a live two-way interpreter between two people who share no language (31 languages, browser link or phone), create and edit voice agents, and search, buy and bind phone numbers in 21 countries. OAuth 2.1 with PKCE — the model never sees your API key; a read-only scope is available. Pay as you go from $0.10/min, $5 free credit for new accounts.
Build and manage voice AI agents for real phone lines: assistants, calls, numbers and campaigns.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceHosted MCP server for PacketExchange, the wholesale voice and SMS marketplace. Agents can search routes per mobile network with measured connect and caller ID results, compare prices, send SMS, place and follow calls, run SMS or voice verification codes and check the account balance. Route search works without an API key.MIT
- AlicenseNot gradedqualityCmaintenanceEnables building, publishing, and operating CallDeskTech voice agents, including conversation flows, knowledge bases, phone routing, calls, batch calls, and webhooks.118 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables any MCP client to discover live MeshKore agents, see their current operational status and pricing, and directly invoke their skills without an SDK, account, or API key.MIT
- AlicenseBqualityBmaintenanceEnables MCP clients to manage AI voice assistants, place calls, run campaigns, handle contacts and knowledge bases, and read call transcripts. It also provides account, phone number, dialer, and analytics tools through a hosted or local MCP connection.25MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.