Skip to main content
Glama

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

A4.1/5.0

Scored across 18 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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 tools
become_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesISO code like "US" or "CN" (a full country name also works).
usernameNoRequired if the account has no username yet: 3–30 letters, digits, _ or -. It becomes the public page /u/<username>.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.
entity_typeNoindividual (default) or company.
display_nameYesThe name shown on their app pages.
social_linksNoUp to 6 public URLs (X, GitHub, LinkedIn, their website). The kind is guessed from the domain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
countryYes
display_nameYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body. An object is sent as JSON; a string is sent as-is.
pathNoThe route path from get_cap, e.g. '/api/videos'. A query string may be appended or passed separately in `query`.
slugYesThe Cap's slug, from search_caps.
inputNoArguments 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.
queryNoQuery string without the leading '?'.
acceptNoOptional Accept header.
methodNoHTTP method. Default GET — the routes and their methods are in get_cap.
operationNoOperation name from get_cap (a route's `name`). Use with `input`; takes precedence over `path`/`method` when both are given.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.
content_typeNoOnly needed when `body` is a string and the app expects a specific type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bodyYes
pathYes
binaryNo
methodYes
statusYes
call_idNo
free_callNoSet when this call used one of the operation's free calls (users who have topped up).
truncatedNo
body_bytesNo
direct_urlNo
content_typeNo
charged_micro_usdNo
remaining_micro_usdNo
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe Cap's slug.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
slugYes
checksYes
statusYes
reviewer_noteNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capsNo
topup_urlNo
frozen_micro_usdNo
balance_micro_usdYes
available_micro_usdYes
withdrawable_micro_usdYes
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe Cap's slug, e.g. 'autowhisper'. Comes from search_caps.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
slugYes
summaryNo
operationsYes
price_lineYes
monthly_limit_micro_usdNo
spent_this_month_micro_usdNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entriesNo
next_payable_onNo
pending_payoutsNo
frozen_micro_usdNo
payable_micro_usdYes
pending_micro_usdYes
paid_net_micro_usdNo
paid_gross_micro_usdNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe skill's slug, e.g. 'AgriciDaniel/claude-seo/seo-google'. Comes from search_skills.
include_filesNoAlso 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

ParametersJSON Schema
NameRequiredDescription
nameYes
slugYes
filesNo
skill_mdYes
source_urlNo
include_filesNo
skipped_filesNo
skills_page_urlNo

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

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 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.

Usage Guidelines4/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capsYes
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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainsYes
categoriesYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return. Default 20, max 60.
queryNoOptional. Filter by name or vendor, e.g. 'claude', 'gemini'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNo
totalYes
modelsYes

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return. Default 20, max 50.

Output Schema

ParametersJSON Schema
NameRequiredDescription
wantedYes
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman name shown in the store.
slugNoOptional URL slug. Derived from the name when omitted. With manifest_url: picks which Cap in the file to publish.
eventsNoPrice book events. unit_price_usd is in US dollars, e.g. 0.10.
routesNoHTTP routes. Billable routes need hold_usd (the most one call may cost).
mcp_urlNoOptional: 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.
summaryNoOne line describing what it does.
base_urlNoWhere 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.
keywordsNoOther 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.
meteringNoreported (the app tells us what to charge) or balance_delta (we read its balance).
auth_modeNoHow 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_toolsNoPrices for the MCP tools you want listed. Tools you leave out are not published and are reported back to you.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.
unit_nameNoWhat users buy, e.g. credit.
skill_slugNoOptional. 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_urlNoWhere users ask for help. Shown on the app page.
balance_pathNoOnly for balance_delta: where we read the balance.
manifest_urlNoOptional: 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_linksNoUp 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_tokenNoThe 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_pathNoOnly for balance_delta: where in that response.
refund_policy_urlNoTheir refund policy, if they have one.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
slugYes
statusYes
usage_keyNo
skipped_toolsNo
signing_secretNo
price_book_versionNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNoSet true only after the user has seen the estimate and agreed.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.
amount_usdYesHow much to withdraw, in US dollars.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
payout_idNo
requestedYes
fee_micro_usdNo
net_micro_usdNo
amount_micro_usdYes
withholding_tax_micro_usdNo
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return. Default 5, max 10.
queryNoWhat the user wants done, in their own words. Omit to browse the most-used Caps.
max_price_usdNoOptional ceiling: drop Caps whose per-call price is above this, in US dollars.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNo
queryNo
resultsYes
returnedNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return. Default 5, max 10.
queryNoWhat 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.
offsetNoSkip this many results — for paging through a long list.
categoryNoOptional. Narrow to one category. Call list_categories to see them.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNo
offsetNo
resultsYes
has_moreNo
returnedNo
category_schemeYesWhich taxonomy the results' category values come from: "domain" for browse (no query), "fine" for a search.
searched_in_english_asNo
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe Cap's slug.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
statusYes
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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe Cap's slug.
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
missingNo
connection_passedNo
end_to_end_passedYes
connection_summaryNo
end_to_end_summaryNo
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe service's https url, e.g. https://api.example.com/mcp
checkNotrue = look for the line now (after the user deployed it).
qumge_keyNoOptional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
put_atNo
dns_txtNo
verifiedYes
verification_lineNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • Changedcall_cap1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"The cap's slug, from search_caps."New value: +"The Cap's slug, from search_caps."
    • Changedcap_status1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"The cap's slug."New value: +"The Cap's slug."
    • Changedget_cap1 field changed
      • changedInput schema / properties / slug / description
        Previous 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."
    • Changedpublish_cap2 fields changed
      • changedInput schema / properties / manifest_url / description
        Previous 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"
      • changedInput schema / properties / slug / description
        Previous 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."
    • Changedsearch_caps2 fields changed
      • changedInput schema / properties / max_price_usd / description
        Previous 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."
      • changedInput schema / properties / query / description
        Previous 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."
    • Changedsubmit_cap1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"The cap's slug."New value: +"The Cap's slug."
    • Changedtest_cap1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"The cap's slug."New value: +"The Cap's slug."
  2. 1 tool update
    • Changedpublish_cap1 field changed
      • changedInput schema / properties / mcp_url / description
        Previous 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."
  3. 10 tool updates
    • Changedcap_status1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedget_earnings1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedget_skill1 field changed
      • removedInput schema / properties / qumge_key
        Removed 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"
        -}
    • Changedlist_models1 field changed
      • removedInput schema / properties / qumge_key
        Removed 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"
        -}
    • Changedrequest_payout1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedsearch_caps1 field changed
      • removedInput schema / properties / qumge_key
        Removed 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"
        -}
    • Changedsearch_skills1 field changed
      • removedInput schema / properties / qumge_key
        Removed 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"
        -}
    • Changedsubmit_cap1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedtest_cap1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedverify_domain1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
  4. 1 tool update
    • Changedcall_cap1 field changed
      • changedInput schema / properties / input / description
        Previous 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."
  5. 4 tool updates
    • Changedcall_cap1 field changed
      • addedOutput schema / properties / free_call
        Added 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"
        +  ]
        +}
    • Changedget_cap1 field changed
      • addedOutput schema / properties / operations / items / properties / free_calls
        Added value: +{
        +  "description": "First N calls per user are free (accounts that have topped up; failed calls don't count).",
        +  "type": "integer"
        +}
    • Changedpublish_cap3 fields changed
      • addedInput schema / properties / manifest_url
        Added 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"
        +}
      • changedInput schema / properties / slug / description
        Previous 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."
      • changedInput schema / properties / upstream_token / description
        Previous 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."
    • Changedsearch_caps1 field changed
      • addedOutput schema / properties / results / items / properties / free_calls
        Added value: +{
        +  "additionalProperties": {
        +    "type": "integer"
        +  },
        +  "description": "Operation name → how many calls each topped-up user gets free.",
        +  "type": "object"
        +}
  6. 2 tool updates
    • Changedget_earnings2 fields changed
      • addedOutput schema / properties / entries / items / properties / frozen_host
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / frozen_micro_usd
        Added value: +{
        +  "type": "integer"
        +}
    • Changedpublish_cap1 field changed
      • changedInput schema / properties / mcp_url / description
        Previous 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."
  7. 2 tool updates
    • Changedpublish_cap1 field changed
      • changedInput schema / properties / mcp_url / description
        Previous 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."
    • Addedverify_domain
  8. 1 tool update
    • Changedbecome_developer1 field changed
      • addedInput schema / properties / username
        Added value: +{
        +  "description": "Required if the account has no username yet: 3–30 letters, digits, _ or -. It becomes the public page /u/<username>.",
        +  "type": "string"
        +}
  9. 1 tool update
    • Changedpublish_cap2 fields changed
      • addedInput schema / properties / auth_mode
        Added 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"
        +}
      • addedInput schema / properties / upstream_token
        Added 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"
        +}
  10. 1 tool update
    • Changedpublish_cap3 fields changed
      • changedInput schema / properties / base_url / description
        Previous 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."
      • changedInput schema / properties / mcp_url / description
        Previous 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."
      • changedInput schema / required
        Previous value: -[
        -  "name",
        -  "base_url"
        -]New value: +[
        +  "name"
        +]
  11. 2 tool updates
    • Changedget_cap1 field changed
      • addedOutput schema / properties / operations / items / properties / meter
        Added value: +{
        +  "description": "\"platform\" means Qumge counts one unit per successful (2xx) call at the unit price — a failing call is free.",
        +  "enum": [
        +    "app",
        +    "platform"
        +  ]
        +}
    • Changedpublish_cap1 field changed
      • addedInput schema / properties / routes / items / properties / meter
        Added 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"
        +}
  12. 2 tool updates
    • Changedlist_categories2 fields changed
      • addedOutput schema / properties / domains
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "key": {
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "key",
        +      "title"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "categories"
        -]New value: +[
        +  "categories",
        +  "domains"
        +]
    • Changedsearch_skills3 fields changed
      • addedOutput schema / properties / category_scheme
        Added value: +{
        +  "description": "Which taxonomy the results' category values come from: \"domain\" for browse (no query), \"fine\" for a search.",
        +  "enum": [
        +    "domain",
        +    "fine"
        +  ]
        +}
      • addedOutput schema / properties / results / items / properties / category / description
        Added 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."
      • changedOutput schema / required
        Previous value: -[
        -  "results"
        -]New value: +[
        +  "results",
        +  "category_scheme"
        +]
  13. 2 tool updates
    • Changedget_cap1 field changed
      • changedOutput schema / required
        Previous value: -[
        -  "slug",
        -  "operations"
        -]New value: +[
        +  "slug",
        +  "name",
        +  "price_line",
        +  "operations"
        +]
    • Changedsearch_skills3 fields changed
      • addedOutput schema / properties / results / items / properties / category
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / results / items / properties / vetted
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "slug",
        -  "name",
        -  "summary"
        -]New value: +[
        +  "slug",
        +  "name",
        +  "summary",
        +  "category",
        +  "vetted"
        +]
  14. 17 tool updates
    • Changedbecome_developer1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "country": {
        +      "type": "string"
        +    },
        +    "display_name": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "display_name",
        +    "country"
        +  ],
        +  "type": "object"
        +}
    • Changedcall_cap1 field changed
      • changedOutput 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"
        +}
    • Changedcap_status1 field changed
      • changedOutput 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"
        +}
    • Changedget_balance1 field changed
      • changedOutput 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"
        +}
    • Changedget_cap1 field changed
      • changedOutput 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"
        +}
    • Changedget_earnings1 field changed
      • changedOutput 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"
        +}
    • Changedget_skill1 field changed
      • changedOutput 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"
        +}
    • Changedlist_caps1 field changed
      • changedOutput 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"
        +}
    • Changedlist_categories1 field changed
      • changedOutput 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"
        +}
    • Changedlist_models1 field changed
      • changedOutput 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"
        +}
    • Changedlist_wanted1 field changed
      • changedOutput 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"
        +}
    • Changedpublish_cap1 field changed
      • changedOutput 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"
        +}
    • Changedrequest_payout1 field changed
      • changedOutput 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"
        +}
    • Changedsearch_caps1 field changed
      • changedOutput 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"
        +}
    • Changedsearch_skills1 field changed
      • changedOutput 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"
        +}
    • Changedsubmit_cap1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "slug": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "slug",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedtest_cap1 field changed
      • changedOutput 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"
        +}
  15. 19 tool updates
    • Removedapp_status
    • Removedcall_app
    • Addedcall_cap
    • Addedcap_status
    • Removedget_app
    • Addedget_cap
    • Addedget_earnings
    • Removedlist_apps
    • Addedlist_caps
    • Addedlist_wanted
    • Removedpublish_app
    • Addedpublish_cap
    • Addedrequest_payout
    • Removedsearch_apps
    • Addedsearch_caps
    • Removedsubmit_app_review
    • Addedsubmit_cap
    • Removedtest_app
    • Addedtest_cap
  16. 1 tool update
    • Changedpublish_app2 fields changed
      • addedInput schema / properties / routes / items / properties / lane
        Added 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"
        +}
      • addedInput schema / properties / routes / items / properties / rate_limit_per_min
        Added value: +{
        +  "description": "Micro lanes only: calls per minute per key (default 600).",
        +  "maximum": 3000,
        +  "minimum": 60,
        +  "type": "integer"
        +}
  17. 10 tool updates
    • Addedbecome_developer
    • Changedcall_app1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedget_app1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Addedget_balance
    • Changedget_skill1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Addedlist_apps
    • Changedlist_models1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedpublish_app6 fields changed
      • addedInput schema / properties / keywords
        Added 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"
        +}
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
      • addedInput schema / properties / refund_policy_url
        Added value: +{
        +  "description": "Their refund policy, if they have one.",
        +  "type": "string"
        +}
      • addedInput schema / properties / skill_slug
        Added 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"
        +}
      • addedInput schema / properties / social_links
        Added 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"
        +}
      • addedInput schema / properties / support_url
        Added value: +{
        +  "description": "Where users ask for help. Shown on the app page.",
        +  "type": "string"
        +}
    • Changedsearch_apps1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
    • Changedsearch_skills1 field changed
      • addedInput schema / properties / qumge_key
        Added 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"
        +}
  18. 7 tool updates
    • Addedapp_status
    • Addedcall_app
    • Addedget_app
    • Addedpublish_app
    • Addedsearch_apps
    • Addedsubmit_app_review
    • Addedtest_app

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Hosted 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables building, publishing, and operating CallDeskTech voice agents, including conversation flows, knowledge bases, phone routing, calls, batch calls, and webhooks.
    118 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • A
    license
    B
    quality
    B
    maintenance
    Enables 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.
    25
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources