Skip to main content
Glama

Qumge: Agent Capabilities & Skills

publish_cap

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

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
slugYes
statusYes
usage_keyNo
skipped_toolsNo
signing_secretNo
price_book_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema 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."
  2. Changed1 schema 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. Changed3 schema 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."
  4. Changed1 schema 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."
  5. Changed1 schema 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."
  6. Changed2 schema 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"
      +}
  7. Changed3 schema 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"
      +]
  8. Changed1 schema 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"
      +}
  9. Changed1 schema 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"
      +}
  10. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources