Koskamo

SpendQuery MCP

SpendQuery MCP provides a free, read-only interface to US federal spending data, including contracts, grants, SAM.gov notices, and FAR clauses. It enables agents to search for companies, awards, agencies, and regulations, and to retrieve plain-English summaries of government contracting information sourced from USAspending.gov and SAM.gov.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

SpendQuery MCP logo, by SpendQueryVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by SpendQuery
MCP endpoint (Streamable HTTP)
https://api.spendquery.com/mcp
Vendor documentation

What you can do with it

  • Look up a company's federal obligations and SAM.gov registration
  • Search for open contract opportunities and awards by agency or industry
  • Retrieve plain-English summaries of FAR and DFARS clauses
  • Find suppliers and vendors for specific government products or services

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
SpendQuery 0.3.0
MCP protocol
2025-06-18
Tools
13 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

SpendQuery answers questions about US federal spending (USAspending.gov prime awards: contracts, grants, loans, direct payments). Amounts are obligations (money committed), not outlays. How to answer a question: 1. Call get_catalog once: it lists metrics, dimensions, analyses, the QueryPlan JSON schema, planning rules and worked examples for federal questions (section="states" for state, county and city checkbooks). 2. Write a QueryPlan in business terms (e.g. filters [{"dimension": "agency", "values": ["DoD"]}]). Put names as the user said them; the server resolves them. Use search_codes / search_recipients when you need to check a name, code or company first, and browse_codes to explore products/services (PSC) or industries (NAICS) with their spend. 3. Call run_plan. If status is "clarify", ask the user the returned question. 4. Report the answer with its caveats; mention that amounts are obligations. Things that trip planners up: - A company's total comes from run_plan with a company filter (it rolls up subsidiaries). search_recipients' obligations are one registration's own money: a parent UEI often has little or none of its own (it can even be negative), because the money sits on its units. - Give fiscal_years. Without them a plan sums every loaded year, including the year in progress (see coverage in run_plan's reply; Defense publishes about 90 days late). - award_category is singular: "contract" or "assistance". Growth is analysis "compare" with baseline_years. "Businesses only" is a filter (business_type / recipient_type), not a field. - Company and recipient rankings leave out payments with no recipient ID (aggregate payments to individuals); the answer says how much was left out. - For one contract notice (fit, incumbent, deadline, what changed), call get_notice with its id. For small-business size, size_standard; to find a company's NAICS codes, naics_finder; for which GWACs or IDIQs carry an industry's money, vehicle_match. - State, county and city bids and contracts (not federal awards): search_local_bids. SBIR and STTR awards and who received them (SBA's SBIR.gov records since 1983): sbir_awards. The FAR and DFARS: search_far, then get_far_section. - Each API key has a daily call limit; replies over HTTP carry X-Quota-Limit, X-Quota-Remaining and X-Quota-Reset (seconds to 00:00 UTC).

Tools

13 advertised

get_catalog — What SpendQuery can answer
Advertised by the server during the last successful anonymous check.
Advertised read-only

What SpendQuery can answer: data coverage, metrics, dimensions (with examples and whether they apply to contracts or assistance), analyses, the QueryPlan JSON schema, planning rules and example question -> plan pairs. Call this first (no arguments): the federal catalog. section: "states" (state, county and city checkbooks in brief: each jurisdiction, their dimensions, rules and examples), "state:<CODE>" (one jurisdiction in full, e.g. "state:MA"), "rules" (every planning rule), "examples" (every worked example) or "full" (everything).

get_catalog input schema
{
  "type": "object",
  "title": "get_catalogArguments",
  "properties": {
    "section": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section",
      "default": null,
      "description": "Omit for the federal catalog. \"states\" (state, county and city checkbooks in brief), \"state:<CODE>\" for one jurisdiction in full (e.g. \"state:MA\"), \"rules\", \"examples\" or \"full\"."
    }
  }
}
get_catalog annotations
{
  "title": "What SpendQuery can answer",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
run_plan — Run a spending query
Advertised by the server during the last successful anonymous check.
Advertised read-only

Run a QueryPlan (see get_catalog.plan_schema). Returns status (ok | clarify | unsupported | error), a one-paragraph answer, columns, rows (max 100), the SQL that ran, caveats and how names were resolved to codes.

run_plan input schema
{
  "type": "object",
  "title": "run_planArguments",
  "required": [
    "plan"
  ],
  "properties": {
    "plan": {
      "type": "object",
      "title": "Plan",
      "description": "A QueryPlan object in business terms, following get_catalog's plan_schema, e.g. {\"intent\": \"aggregate\", \"metric\": \"obligations\", \"group_by\": [\"agency\"], \"fiscal_years\": [2025], \"filters\": [{\"dimension\": \"award_category\", \"values\": [\"contract\"]}]}.",
      "additionalProperties": true
    }
  }
}
run_plan annotations
{
  "title": "Run a spending query",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_codes — Search agencies, industries and product codes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Look up codes and official names. kind: agency | bureau | state | county | naics | psc | program. Matches names (substring, case-insensitive) or code prefixes. Plans can use either the names or the codes.

search_codes input schema
{
  "type": "object",
  "title": "search_codesArguments",
  "required": [
    "kind",
    "query"
  ],
  "properties": {
    "kind": {
      "enum": [
        "agency",
        "bureau",
        "state",
        "county",
        "naics",
        "psc",
        "program"
      ],
      "type": "string",
      "title": "Kind",
      "description": "What to look up: agency, bureau (sub-agency), state, county, naics (industry), psc (product or service code) or program (Assistance Listing)."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "description": "Most rows to return, 1-50."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "Words in the name, or the code itself, e.g. \"veterans affairs\", \"541511\", \"D302\"."
    }
  }
}
search_codes annotations
{
  "title": "Search agencies, industries and product codes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_recipients — Search companies and recipients
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find award recipients (companies, universities, governments) by name or UEI. Returns each registration's UEI, parent, listed-company ticker (if matched) and its OWN obligations across loaded years, largest first. A parent's money sits on its units, so a parent UEI's own obligations can be small or negative: for a company's total use run_plan with a company filter (name or ticker). A UEI that is a parent also returns parent_rollup (its units).

search_recipients input schema
{
  "type": "object",
  "title": "search_recipientsArguments",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 10,
      "description": "Most rows to return, 1-50."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "A company or recipient name, or a 12-character UEI, e.g. \"booz allen\" or \"ZFN2JJXBLZT3\"."
    }
  }
}
search_recipients annotations
{
  "title": "Search companies and recipients",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
browse_codes — Browse industry and product codes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Browse what the government buys, with contract spend. kind: psc (products and services) | naics (industries). No group and no query -> the groups (PSC: services by letter, e.g. D = IT services, R = professional support; products by 2 digits, e.g. 84 = clothing and individual equipment; NAICS: 2-digit sectors), largest first. group -> the codes in it. query -> codes whose name contains the words. Default year: last complete fiscal year. Use a code or its name in a plan's psc / naics filter.

browse_codes input schema
{
  "type": "object",
  "title": "browse_codesArguments",
  "properties": {
    "kind": {
      "enum": [
        "psc",
        "naics"
      ],
      "type": "string",
      "title": "Kind",
      "default": "psc",
      "description": "psc (products and services) or naics (industries)."
    },
    "group": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Group",
      "default": null,
      "description": "A group to list the codes in: a PSC letter or 2-character group (e.g. \"D\", \"84\") or a 2-digit NAICS sector (e.g. \"54\")."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 50,
      "description": "Most rows to return, 1-200."
    },
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Query",
      "default": null,
      "description": "Words in a code's name, e.g. \"body armor\", \"janitorial\"."
    },
    "fiscal_year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fiscal Year",
      "default": null,
      "description": "Federal fiscal year (October-September), e.g. 2025; default the last complete one."
    }
  }
}
browse_codes annotations
{
  "title": "Browse industry and product codes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_notice — Look up a contract notice
Advertised by the server during the last successful anonymous check.
Advertised read-only

One SAM.gov contract notice as SpendQuery's brief sees it, no AI: the decision card (what the buyer needs, blockers, unknowns, a next step; each line labelled record / files / unknown), the timeline of the buy (planned buy, the contract it follows, earlier and newer notices, the award and the contract it became, each link confirmed / likely / possible) and what changed between versions of its public files. notice_id: from run_plan lists of contract_opportunities, or the id in a SAM.gov notice URL.

get_notice input schema
{
  "type": "object",
  "title": "get_noticeArguments",
  "required": [
    "notice_id"
  ],
  "properties": {
    "notice_id": {
      "type": "string",
      "title": "Notice Id",
      "description": "A SAM.gov notice id: the 32-character hex id in a SAM.gov notice URL (sam.gov/opp/<id>/view) or from run_plan's contract_opportunities rows, e.g. \"0a1b2c3d4e5f60718293a4b5c6d7e8f9\"."
    }
  }
}
get_notice annotations
{
  "title": "Look up a contract notice",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
size_standard — Check an SBA size standard
Advertised by the server during the last successful anonymous check.
Advertised read-only

SBA small business size standards (13 CFR 121.201, the eCFR table): a NAICS code, a code prefix (5415) or industry words -> receipts ($ millions) or employees, exceptions and footnotes, and the programs that use them.

size_standard input schema
{
  "type": "object",
  "title": "size_standardArguments",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "title": "Query",
      "description": "A 6-digit NAICS code (e.g. \"541511\"), a code prefix (e.g. \"5415\") or industry words (e.g. \"custom software\")."
    }
  }
}
size_standard annotations
{
  "title": "Check an SBA size standard",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
naics_finder — Find NAICS codes for a business
Advertised by the server during the last successful anonymous check.
Advertised read-only

Describe the work in plain words -> the NAICS codes buyers actually use for it (codes on SAM.gov notices whose titles have the words and on federal contracts described with them), each with its SBA size standard.

naics_finder input schema
{
  "type": "object",
  "title": "naics_finderArguments",
  "required": [
    "description"
  ],
  "properties": {
    "description": {
      "type": "string",
      "title": "Description",
      "description": "The work in plain words, e.g. \"commercial janitorial and floor care\" or \"drone mapping surveys\"."
    }
  }
}
naics_finder annotations
{
  "title": "Find NAICS codes for a business",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vehicle_match — Find contract vehicles for an industry
Advertised by the server during the last successful anonymous check.
Advertised read-only

For 6-digit NAICS codes (and an optional agency): the shared contract vehicles (GWACs, multiple-award IDIQs, GSA Schedule, BPAs) carrying last complete year's contract money in those codes, the share through each and who each is reserved for (read from its name).

vehicle_match input schema
{
  "type": "object",
  "title": "vehicle_matchArguments",
  "required": [
    "naics"
  ],
  "properties": {
    "naics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Naics",
      "description": "One or more 6-digit NAICS codes, e.g. [\"541511\", \"541512\"]."
    },
    "agency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Agency",
      "default": null,
      "description": "An agency to limit to, by name or code, e.g. \"Department of Veterans Affairs\" or \"036\"."
    }
  }
}
vehicle_match annotations
{
  "title": "Find contract vehicles for an industry",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_far — Search the FAR and DFARS
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the FAR and the DFARS (48 CFR chapters 1 and 2, as codified in the eCFR): sections whose title or text has every word, or a section number (e.g. 52.219-14) straight to it. reg: FAR | DFARS to limit. Returns section numbers, titles and a snippet; read one with get_far_section. The codified text lags the Revolutionary FAR Overhaul's class deviations.

search_far input schema
{
  "type": "object",
  "title": "search_farArguments",
  "required": [
    "query"
  ],
  "properties": {
    "reg": {
      "enum": [
        "FAR",
        "DFARS",
        null
      ],
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reg",
      "default": null,
      "description": "Limit to one regulation: FAR or DFARS; omit for both."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "Words that must all appear in the section's title or text (e.g. \"limitations on subcontracting\"), or a section number (e.g. \"52.219-14\")."
    }
  }
}
search_far annotations
{
  "title": "Search the FAR and DFARS",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_far_section — Read a FAR or DFARS section
Advertised by the server during the last successful anonymous check.
Advertised read-only

One FAR or DFARS section's full text (paragraphs), its part and subpart, the sections it refers to and the ones referring to it, and Federal Register rules changing its part. Cite it as FAR <section> (or DFARS) with the as-of date in source.

get_far_section input schema
{
  "type": "object",
  "title": "get_far_sectionArguments",
  "required": [
    "section"
  ],
  "properties": {
    "section": {
      "type": "string",
      "title": "Section",
      "description": "A FAR or DFARS section number, e.g. \"52.204-21\", \"19.502-2\" or \"252.204-7012\"."
    }
  }
}
get_far_section annotations
{
  "title": "Read a FAR or DFARS section",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_local_bids — Search state and local bids and contracts
Advertised by the server during the last successful anonymous check.
Advertised read-only

State, county and city government bids and contracts (not federal awards), from the governments that publish them as open data: Los Angeles (the City, LA County, LADWP, LAUSD, airports, port, Metro), New York City, San Francisco, Washington DC, Chicago, Cook County, Austin, Detroit, Richmond, Sacramento, Baton Rouge, Montgomery County MD, Delaware, Texas DOT, California state departments (Cal eProcure), SUNY construction, E-Rate and others. kind: "open" (taking responses, soonest due first), "planned" (forecasts: TxDOT's planned lettings, Illinois CDB, San Diego County), "awarded" (contracts first awarded in the last year: who won, net amounts) or "current" (in force today, soonest ending first: the re-bids). q: words in the title or description; state: two-letter code (open and planned bids); source: one source key from the reply's sources. Coverage is partial: no tool has every state, county and city; say so when the place asked about isn't covered. Each row links to the government's own record (source_url).

search_local_bids input schema
{
  "type": "object",
  "title": "search_local_bidsArguments",
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Q",
      "default": null,
      "description": "Words in the title or description, e.g. \"roofing\" or \"janitorial\"."
    },
    "kind": {
      "enum": [
        "open",
        "planned",
        "awarded",
        "current"
      ],
      "type": "string",
      "title": "Kind",
      "default": "open",
      "description": "open (taking responses, soonest due first), planned (forecasts), awarded (contracts first awarded in the last year) or current (in force today, soonest ending first)."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 25,
      "description": "Most rows to return, 1-50."
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State",
      "default": null,
      "description": "Two-letter state code, e.g. \"TX\" (open and planned bids)."
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source",
      "default": null,
      "description": "One source key from the reply's sources, e.g. \"txdot\", \"nyc\", \"lacity\"."
    }
  }
}
search_local_bids annotations
{
  "title": "Search state and local bids and contracts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
sbir_awards — Search SBIR and STTR awards
Advertised by the server during the last successful anonymous check.
Advertised read-only

SBIR and STTR awards since 1983 from SBA's SBIR.gov records, and who received them: totals, awards by year (Phase I / II), by agency, the companies with the most, and the latest awards (company, title, agency, phase, amount, year). Filters: agency (as SBIR.gov names it, e.g. "Department of Defense"), phase ("Phase I" or "Phase II"), program ("SBIR" or "STTR"), state (the winner's), q (words in the award title), company_uei, since (first award year). open_topics: also the SBIR/STTR solicitations open now (SAM.gov and Grants.gov). SBIR.gov counts awards by award year; USAspending (run_plan) counts money by fiscal year, so the two differ.

sbir_awards input schema
{
  "type": "object",
  "title": "sbir_awardsArguments",
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Q",
      "default": null,
      "description": "Words in the award title, e.g. \"hypersonic\" or \"battery\"."
    },
    "phase": {
      "enum": [
        "Phase I",
        "Phase II",
        null
      ],
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Phase",
      "default": null,
      "description": "The award phase: Phase I or Phase II."
    },
    "since": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Since",
      "default": null,
      "description": "First award year to count, e.g. 2020."
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State",
      "default": null,
      "description": "The winner's two-letter state code, e.g. \"VA\"."
    },
    "agency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Agency",
      "default": null,
      "description": "The awarding agency as SBIR.gov names it, e.g. \"Department of Defense\", \"National Science Foundation\"."
    },
    "program": {
      "enum": [
        "SBIR",
        "STTR",
        null
      ],
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Program",
      "default": null,
      "description": "The program: SBIR or STTR."
    },
    "company_uei": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Company Uei",
      "default": null,
      "description": "A winner's 12-character UEI, e.g. \"ZFN2JJXBLZT3\"."
    },
    "open_topics": {
      "type": "boolean",
      "title": "Open Topics",
      "default": false,
      "description": "Also list the SBIR/STTR solicitations open now (SAM.gov and Grants.gov)."
    }
  }
}
sbir_awards annotations
{
  "title": "Search SBIR and STTR awards",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

1 advertised

SpendQuery planner & MCP reference

Advertised by the server during the last successful anonymous check.

Everything a planner can use: tools, QueryPlan fields, metrics, dimensions, analyses, topics, recipient types, validation, rules, examples, prompt anatomy.

SpendQuery planner & MCP reference URI
spendquery://reference

MIME type: text/markdown

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1249 ms
95th percentile latency
1249 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1249 ms · metadata changed · 13 tool(s), 1 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http spendquery-mcp https://api.spendquery.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add spendquery-mcp --url https://api.spendquery.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable spendquery-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "spendquery-mcp": {
      "url": "https://api.spendquery.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "spendquery-mcp": {
      "type": "streamableHttp",
      "url": "https://api.spendquery.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start spendquery-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "spendquery-mcp": {
      "type": "http",
      "url": "https://api.spendquery.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http spendquery-mcp https://api.spendquery.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "spendquery-mcp": {
      "url": "https://api.spendquery.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "spendquery-mcp": {
      "serverUrl": "https://api.spendquery.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like SpendQuery MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run SpendQuery MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing