Qumge: Agent Capabilities & Skills
What this MCP does
Catalogs agent apps, skills, and callable models, and supports app discovery, invocation, publishing, testing, billing, and skill installation.
Tools
Input schema
{'type': 'object', 'required': ['display_name', 'country'], 'properties': {'country': {'type': 'string', 'description': 'ISO code like "US" or "CN" (a full country name also works).'}, 'username': {'type': 'string', 'description': 'Required if the account has no username yet: 3–30 letters, digits, _ or -. It becomes the public page /u/<username>.'}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}, 'entity_type': {'enum': ['individual', 'company'], 'type': 'string', 'description': 'individual (default) or company.'}, 'display_name': {'type': 'string', 'description': 'The name shown on their app pages.'}, 'social_links': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 6 public URLs (X, GitHub, LinkedIn, their website). The kind is guessed from the domain.'}}}
Output schema
{'type': 'object', 'required': ['display_name', 'country'], 'properties': {'status': {'type': 'string'}, 'country': {'type': 'string'}, 'display_name': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'body': {'type': ['object', 'string'], 'description': 'Request body. An object is sent as JSON; a string is sent as-is.'}, 'path': {'type': 'string', 'description': "The route path from get_cap, e.g. '/api/videos'. A query string may be appended or passed separately in `query`."}, 'slug': {'type': 'string', 'description': "The cap's slug, from search_caps."}, 'input': {'type': 'object', 'description': '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.'}, 'query': {'type': 'string', 'description': "Query string without the leading '?'."}, 'accept': {'type': 'string', 'description': 'Optional Accept header.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'], 'type': 'string', 'description': 'HTTP method. Default GET — the routes and their methods are in get_cap.'}, 'operation': {'type': 'string', 'description': "Operation name from get_cap (a route's `name`). Use with `input`; takes precedence over `path`/`method` when both are given."}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}, 'content_type': {'type': 'string', 'description': 'Only needed when `body` is a string and the app expects a specific type.'}}}
Output schema
{'type': 'object', 'required': ['status', 'method', 'path', 'body'], 'properties': {'body': {'type': 'string'}, 'path': {'type': 'string'}, 'binary': {'type': 'boolean'}, 'method': {'type': 'string'}, 'status': {'type': 'integer'}, 'call_id': {'type': ['string', 'null']}, 'truncated': {'type': 'boolean'}, 'body_bytes': {'type': 'integer'}, 'direct_url': {'type': 'string'}, 'content_type': {'type': ['string', 'null']}, 'charged_micro_usd': {'type': ['integer', 'null']}, 'remaining_micro_usd': {'type': ['integer', 'null']}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The cap's slug."}}}
Output schema
{'type': 'object', 'required': ['slug', 'status', 'checks'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'checks': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['status'], 'properties': {'note': {'type': ['string', 'null']}, 'status': {'type': 'string'}}}}, 'status': {'type': 'string'}, 'reviewer_note': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}}}
Output schema
{'type': 'object', 'required': ['balance_micro_usd', 'available_micro_usd', 'withdrawable_micro_usd'], 'properties': {'caps': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'monthly_limit_micro_usd': {'type': 'integer'}, 'spent_this_month_micro_usd': {'type': 'integer'}}}}, 'topup_url': {'type': 'string'}, 'frozen_micro_usd': {'type': 'integer'}, 'balance_micro_usd': {'type': 'integer'}, 'available_micro_usd': {'type': 'integer'}, 'withdrawable_micro_usd': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The cap's slug, e.g. 'autowhisper'. Comes from search_caps."}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}}}
Output schema
{'type': 'object', 'required': ['slug', 'name', 'price_line', 'operations'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'operations': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'pattern', 'billable'], 'properties': {'doc': {'type': ['object', 'null']}, 'name': {'type': ['string', 'null']}, 'unit': {'type': ['string', 'null']}, 'meter': {'enum': ['app', 'platform'], 'description': '"platform" means Qumge counts one unit per successful (2xx) call at the unit price — a failing call is free.'}, 'method': {'type': 'string'}, 'pattern': {'type': 'string'}, 'settles': {'type': ['string', 'null']}, 'billable': {'type': 'boolean'}, 'unit_price_micro_usd': {'type': ['integer', 'null']}, 'max_per_call_micro_usd': {'type': ['integer', 'null']}}}}, 'price_line': {'type': 'string'}, 'monthly_limit_micro_usd': {'type': ['integer', 'null']}, 'spent_this_month_micro_usd': {'type': ['integer', 'null']}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'required': ['pending_micro_usd', 'payable_micro_usd'], 'properties': {'entries': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'type', 'amount_micro_usd'], 'properties': {'date': {'type': 'string'}, 'type': {'type': 'string'}, 'available_at': {'type': ['string', 'null']}, 'amount_micro_usd': {'type': 'integer'}}}}, 'next_payable_on': {'type': ['string', 'null']}, 'pending_payouts': {'type': 'integer'}, 'payable_micro_usd': {'type': 'integer'}, 'pending_micro_usd': {'type': 'integer'}, 'paid_net_micro_usd': {'type': 'integer'}, 'paid_gross_micro_usd': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The skill's slug, e.g. 'AgriciDaniel/claude-seo/seo-google'. Comes from search_skills."}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}, 'include_files': {'type': 'boolean', 'description': "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
{'type': 'object', 'required': ['slug', 'name', 'skill_md'], 'properties': {'name': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string'}, 'content': {'type': ['string', 'null']}}}}, 'skill_md': {'type': 'string'}, 'source_url': {'type': 'string'}, 'include_files': {'type': 'boolean'}, 'skipped_files': {'type': 'array', 'items': {'type': 'string'}}, 'skills_page_url': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}}}
Output schema
{'type': 'object', 'required': ['caps'], 'properties': {'caps': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'status'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'status': {'type': 'string'}, 'self_tests_total': {'type': 'integer'}, 'suspended_reason': {'type': ['string', 'null']}, 'self_tests_passed': {'type': ['integer', 'null']}}}}}}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'required': ['categories', 'domains'], 'properties': {'domains': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'title'], 'properties': {'key': {'type': 'string'}, 'title': {'type': 'string'}}}}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'count'], 'properties': {'name': {'type': 'string'}, 'count': {'type': 'integer'}}}}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'How many to return. Default 20, max 60.'}, 'query': {'type': 'string', 'description': "Optional. Filter by name or vendor, e.g. 'claude', 'gemini'."}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}}}
Output schema
{'type': 'object', 'required': ['models', 'total'], 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'models': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'provider', 'slug', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'vision': {'type': 'boolean'}, 'provider': {'type': 'string'}, 'input_price_per_mtok_usd': {'type': 'number'}, 'output_price_per_mtok_usd': {'type': 'number'}}}}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'How many to return. Default 20, max 50.'}}}
Output schema
{'type': 'object', 'required': ['wanted'], 'properties': {'wanted': {'type': 'array', 'items': {'type': 'object', 'required': ['query', 'searches_7d', 'searches_30d'], 'properties': {'query': {'type': 'string'}, 'searches_7d': {'type': 'integer'}, 'searches_30d': {'type': 'integer'}}}}}}
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Human name shown in the store.'}, 'slug': {'type': 'string', 'description': 'Optional URL slug. Derived from the name when omitted.'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'unit_price_usd'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'unit_price_usd': {'type': 'number'}}}, 'description': 'Price book events. unit_price_usd is in US dollars, e.g. 0.10.'}, 'routes': {'type': 'array', 'items': {'type': 'object', 'required': ['pattern'], 'properties': {'doc': {'type': 'object', 'properties': {'title': {'type': 'string'}, 'description': {'type': 'string'}, 'limitations': {'type': 'string'}, 'when_to_use': {'type': 'string'}, 'input_schema': {'type': 'object', 'description': 'JSON Schema 2020-12.'}, 'example_input': {'type': 'object'}, 'output_schema': {'type': 'object', 'description': 'JSON Schema 2020-12.'}}, 'description': 'What this operation does and what it takes, for agents. Optional, but without it an agent can only guess the input shape (call_cap validates `input` against doc.input_schema).'}, 'lane': {'enum': ['standard', 'micro'], 'type': 'string', '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.'}, 'name': {'type': 'string'}, 'event': {'type': 'string', 'description': 'Which price-book event this route bills. Defaults to the first event.'}, 'meter': {'enum': ['app', 'platform'], 'type': 'string', '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.'}, 'method': {'type': 'string'}, 'settle': {'enum': ['on_response', 'on_final'], 'type': 'string'}, 'pattern': {'type': 'string'}, 'billable': {'type': 'boolean'}, 'hold_usd': {'type': 'number'}, 'rate_limit_per_min': {'type': 'integer', 'maximum': 3000, 'minimum': 60, 'description': 'Micro lanes only: calls per minute per key (default 600).'}}}, 'description': 'HTTP routes. Billable routes need hold_usd (the most one call may cost).'}, 'mcp_url': {'type': 'string', 'description': '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.'}, 'summary': {'type': 'string', 'description': 'One line describing what it does.'}, 'base_url': {'type': 'string', 'description': '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': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'metering': {'enum': ['reported', 'balance_delta'], 'type': 'string', 'description': 'reported (the app tells us what to charge) or balance_delta (we read its balance).'}, 'auth_mode': {'enum': ['signature', 'api_key'], 'type': 'string', '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)."}, 'mcp_tools': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'unit_price_usd'], 'properties': {'name': {'type': 'string', 'description': 'Tool name, exactly as tools/list returns it.'}, 'unit_price_usd': {'type': 'number', 'description': 'Price per successful call, in USD.'}}}, 'description': 'Prices for the MCP tools you want listed. Tools you leave out are not published and are reported back to you.'}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}, 'unit_name': {'type': 'string', 'description': 'What users buy, e.g. credit.'}, 'skill_slug': {'type': 'string', '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.'}, 'support_url': {'type': 'string', 'description': 'Where users ask for help. Shown on the app page.'}, 'balance_path': {'type': 'string', 'description': 'Only for balance_delta: where we read the balance.'}, 'social_links': {'type': 'array', 'items': {'type': 'string'}, '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.'}, 'upstream_token': {'type': 'string', '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."}, 'balance_json_path': {'type': 'string', 'description': 'Only for balance_delta: where in that response.'}, 'refund_policy_url': {'type': 'string', 'description': 'Their refund policy, if they have one.'}}}
Output schema
{'type': 'object', 'required': ['slug', 'name', 'status'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'status': {'type': 'string'}, 'usage_key': {'type': ['string', 'null']}, 'skipped_tools': {'type': 'array', 'items': {'type': 'string'}}, 'signing_secret': {'type': ['string', 'null']}, 'price_book_version': {'type': ['integer', 'null']}}}
Input schema
{'type': 'object', 'required': ['amount_usd'], 'properties': {'confirmed': {'type': 'boolean', 'description': 'Set true only after the user has seen the estimate and agreed.'}, 'amount_usd': {'type': 'number', 'description': 'How much to withdraw, in US dollars.'}}}
Output schema
{'type': 'object', 'required': ['requested', 'amount_micro_usd'], 'properties': {'status': {'type': ['string', 'null']}, 'payout_id': {'type': ['integer', 'null']}, 'requested': {'type': 'boolean'}, 'fee_micro_usd': {'type': ['integer', 'null']}, 'net_micro_usd': {'type': ['integer', 'null']}, 'amount_micro_usd': {'type': 'integer'}, 'withholding_tax_micro_usd': {'type': ['integer', 'null']}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'How many to return. Default 5, max 10.'}, 'query': {'type': 'string', 'description': 'What the user wants done, in their own words. Omit to browse the most-used caps.'}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}, 'max_price_usd': {'type': 'number', 'description': 'Optional ceiling: drop caps whose per-call price is above this, in US dollars.'}}}
Output schema
{'type': 'object', 'required': ['results'], 'properties': {'limit': {'type': 'integer'}, 'query': {'type': ['string', 'null']}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'price_line'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'summary': {'type': 'string'}, 'price_line': {'type': 'string'}, 'success_rate': {'type': ['integer', 'null']}, 'p50_latency_ms': {'type': ['integer', 'null']}, 'measured_calls_7d': {'type': 'integer'}, 'max_per_call_micro_usd': {'type': 'integer'}}}}, 'returned': {'type': 'integer'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'How many to return. Default 5, max 10.'}, 'query': {'type': 'string', 'description': "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': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many results — for paging through a long list.'}, 'category': {'enum': ['automation-workflow', 'api-integration', 'ai-agent-dev', 'design-frontend', 'data-analytics', 'code-review-debug', 'content-writing', 'code-write-refactor', 'marketing-growth', 'testing', 'documentation', 'devops-security', 'database', 'personal-productivity', 'files-spreadsheets', 'other'], 'type': 'string', 'description': 'Optional. Narrow to one category. Call list_categories to see them.'}, 'qumge_key': {'type': 'string', 'description': 'Optional: your Qumge API key, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.'}}}
Output schema
{'type': 'object', 'required': ['results', 'category_scheme'], 'properties': {'limit': {'type': 'integer'}, 'offset': {'type': 'integer'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'summary', 'category', 'vetted'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'needs': {'type': 'array', 'items': {'type': 'string'}}, 'stars': {'type': 'integer'}, 'vetted': {'type': 'boolean'}, 'summary': {'type': 'string'}, 'category': {'type': ['string', 'null'], 'description': '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.'}, 'source_url': {'type': 'string'}, 'first_party': {'type': 'boolean'}}}}, 'has_more': {'type': 'boolean'}, 'returned': {'type': 'integer'}, 'category_scheme': {'enum': ['domain', 'fine'], 'description': 'Which taxonomy the results\' category values come from: "domain" for browse (no query), "fine" for a search.'}, 'searched_in_english_as': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The cap's slug."}}}
Output schema
{'type': 'object', 'required': ['slug', 'status'], 'properties': {'slug': {'type': 'string'}, 'status': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The cap's slug."}}}
Output schema
{'type': 'object', 'required': ['slug', 'end_to_end_passed'], 'properties': {'slug': {'type': 'string'}, 'missing': {'type': 'array', 'items': {'type': 'string'}}, 'connection_passed': {'type': ['boolean', 'null']}, 'end_to_end_passed': {'type': 'boolean'}, 'connection_summary': {'type': ['string', 'null']}, 'end_to_end_summary': {'type': ['string', 'null']}}}
Recent tool changes
Similar MCP servers
GPT55 Model Gateway
Acts as a remote model gateway exposing GPT chat, coding and review services, lightweight text utilities, and prepaid or x402-bas…
MeshMarket
Provides an agent-to-agent marketplace for reasoning, persistent memory, media generation, code review, audits, business tools, a…
MeshMarket
Marketplace and gateway for metered agent capabilities including memory, reasoning, code review, research, media generation, busi…
DDG Agent Services
Acts as a pay-per-call gateway for agent tools including LLM routes, web and market data, Ethereum RPC, security scans, service c…
agent4.io
Manages grounded business agents, knowledge bases, skills, connected MCP tools, public shares, and structured interactive storyli…
x711 — Universal Agent Gas Station
Provides agents with web observation and interaction, search and retrieval, sandboxed computation, inter-agent communication, col…
k402
Provides agent-payable Kaspa services including blockchain data, covenant transactions, LLM and embedding calls, structured extra…
inference.sh
Runs AI applications, connects to MCP servers, manages agent skills and knowledge, and publishes interactive artifacts.