Model Context Protocol (MCP) server for Apollo.io API integration
Gouda Studios Agent Tools is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Pay-per-result SAM.gov contracts, SEC EDGAR filings, USAspending awards and GLEIF LEI lookups.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http gouda-studios-agent-tools-mcp https://gouda-studios-agent-tools.vercel.app/mcp
# 2 — ask your agent for something these tools do
# get-actor-run, get-dataset-items, get-key-value-store-record and 5 more
Gouda Studios Agent Tools costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http gouda-studios-agent-tools-mcp https://gouda-studios-agent-tools.vercel.app/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
8 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Get detailed information about a specific Actor run. Returns run result: status, storages (datasets/keyValueStores alias map), stats, summary, nextStep. - summary describes the past (e.g. "SUCCEEDED in 22s. 47 items; 3 fields available."). - nextStep prescribes one primary follow-up action with identifiers interpolated (e.g. "Use get-dataset-items with datasetId=..."). - waitSecs (0–45, default 3
| Parameter | Type | Required | Notes |
|---|---|---|---|
| runId | string | yes | The ID of the Actor run. |
| waitSecs | integer | no | Maximum seconds to wait for the run to reach a terminal state (SUCCEEDED, FAILED, ABORTED, TIMED-OUT). 0 returns immediately with the current status. Cap: 45. Default: 30. |
Get items (rows) from a dataset — the output/results produced by an Actor run. Returns the rows themselves, not dataset metadata, counts, or a schema. When the user provides a datasetId and asks to retrieve results, output, data, or rows, call this tool directly. Default limit is 20. Use clean=true to skip empty items and hidden fields. USAGE: - Use when you need to read data from a dataset (all
| Parameter | Type | Required | Notes |
|---|---|---|---|
| datasetId | string | yes | Dataset ID or username~dataset-name. |
| clean | boolean | no | If true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true. |
| offset | number | no | Number of items to skip at the start. Default is 0. |
| limit | integer | no | Maximum number of items to return. Default is 20. |
| fields | string | no | Comma-separated list of fields to include in results. Fields in output are sorted as specified. Use dot notation for nested objects (e.g. "metadata.url"); the server auto-flattens parent prefixes. |
| omit | string | no | Comma-separated list of fields to exclude from results. |
| desc | boolean | no | If true, results are returned in reverse order (newest to oldest). |
| flatten | string | no | Comma-separated list of fields to flatten (e.g. flatten="metadata" turns {"metadata":{"url":"x"}} into {"metadata.url":"x"}). Normally derived automatically from dot-notation in fields; specify only |
Get the value stored under a specific key in a key-value store — a single record, not a listing of all keys. Requires the exact key name. The response preserves the original Content-Encoding; most clients handle decompression automatically. USAGE: - Use when you need to retrieve a specific record (JSON, text, or binary) from a store. USAGE EXAMPLES: - user_input: Get record INPUT from store abc1
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keyValueStoreId | string | yes | Key-value store ID or username~store-name. |
| recordKey | string | yes | Key of the record to retrieve. |
Abort an Actor run that is currently starting or running. For runs with status SUCCEEDED, FAILED, ABORTING, ABORTED, or TIMED-OUT, this call has no effect. The results will include the updated run details after the abort request. USAGE: - Use when you need to stop a run that is taking too long or misconfigured. USAGE EXAMPLES: - user_input: Abort run y2h7sK3Wc - user_input: Gracefully abort run
| Parameter | Type | Required | Notes |
|---|---|---|---|
| runId | string | yes | The ID of the Actor run to abort. |
| gracefully | boolean | no | If true, the Actor run will abort gracefully with a 30-second timeout. |
This tool calls the Actor "gouda_studios/sam-gov-opportunities-feed" and retrieves its output results. Actor description: Get new federal contract opportunities from SAM.gov as clean JSON. Filter by keyword, NAICS, set-aside, notice type and state. Includes deadlines, agency and contracting officer contacts. Monitor mode returns only new notices.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keywords | string | no | Optional free-text search over SAM.gov notice titles and text, e.g. "cybersecurity" or "janitorial services". Leave empty to return all notices that match the other filters. Example values: "software" |
| naicsCodes | array | no | Optional list of 6-digit NAICS industry codes (strings), e.g. ["541511","541512"]. A notice matches if it has any of them. Empty = all industries. |
| noticeTypes | array | no | Optional list of notice type codes: o=Solicitation, k=Combined Synopsis/Solicitation, p=Presolicitation, r=Sources Sought, s=Special Notice, a=Award Notice, u=Justification, i=Intent to Bundle, g=Surp |
| setAsides | array | no | Optional small-business set-aside codes, e.g. ["SBA","8A","SDVOSBC","WOSB","HZC"]. Empty = any set-aside or none. |
| states | array | no | Optional 2-letter US state codes for the place of performance, e.g. ["VA","MD"]. Requires includeDetails=true. Empty = all locations. |
| agencyContains | string | no | Optional case-insensitive text the agency path must contain, e.g. "Navy" or "Veterans Affairs". |
| postedWithinDays | integer | no | Only notices posted or updated in the last N days. 0 = no date limit. Use 1-7 for daily/weekly monitoring. |
| minDaysUntilResponse | integer | no | Optional. Skip notices whose response deadline is fewer than N days away, so you only get ones you can still bid on. |
| activeOnly | boolean | no | true (default) = skip archived/inactive notices. Example values: true |
| includeDetails | boolean | no | true (default) = fetch each notice for NAICS, PSC, set-aside, place of performance, full description and contacts. false = faster, fewer fields. Example values: true |
| includeContacts | boolean | no | true (default) = include the contracting officer work name, email and phone published on the notice. Example values: true |
| onlyNew | boolean | no | true = return only notices not delivered in an earlier run with the same filters (state is kept between runs). Use with a schedule for an alert feed. |
| maxResults | integer | no | Maximum rows to return (1-10000). You are charged per row returned, so this caps the cost: 100 rows = $0.20 at $0.002/row. Example values: 100 |
| apiKey | string | no | Optional. Your own free api.sam.gov public API key; when set, the Actor reads the official SAM.gov Opportunities API instead of the public search feed. |
| waitSecs | integer | no | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow nextStep to poll |
This tool calls the Actor "gouda_studios/sec-edgar-filings-feed" and retrieves its output results. Actor description: Pull recent SEC EDGAR filings by ticker or CIK, including 8-K, 10-Q, 10-K and Form 4 insider trades. Each result has the company, form type, filing date and document links. Built for investor alerts, research and AI agents.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tickers | array | no | Optional stock tickers, e.g. ["AAPL","NVDA"]. Resolved to CIKs with the SEC ticker file. Example values: ["AAPL","TSLA"] |
| ciks | array | no | Optional SEC Central Index Keys, e.g. ["320193"]. Leave tickers and CIKs empty to get latest filings across all companies. |
| formTypes | array | no | Form types to include, e.g. ["8-K","10-K","10-Q","4","D","S-1","13F-HR","SC 13D"]. Empty = all forms (company mode only; market-wide mode needs at least one). Example values: ["8-K"] |
| filedWithinDays | integer | no | Only filings from the last N days. 0 = no limit (company mode returns the ~1000 most recent). Example values: 7 |
| onlyNew | boolean | no | true = skip filings delivered by an earlier run with the same tickers/CIKs/forms. Use with a schedule for an alert feed. |
| maxResults | integer | no | Maximum rows (1-5000). You pay per row, so this caps cost: 100 rows = $0.20. Example values: 100 |
| contactEmail | string | no | Optional. SEC asks automated clients to identify themselves; this email is sent in the User-Agent header to sec.gov only. |
| waitSecs | integer | no | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow nextStep to poll |
This tool calls the Actor "gouda_studios/usaspending-awards-search" and retrieves its output results. Actor description: Search USAspending.gov federal awards by keyword, recipient, agency or date. Get contracts and grants with amounts, recipients, awarding agency and performance dates as JSON. Great for competitor research and sales prospecting.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keywords | array | no | Optional words to match in award descriptions, e.g. ["cybersecurity"]. Example values: ["cybersecurity"] |
| recipientNames | array | no | Optional company or organization names (or UEIs), e.g. ["Booz Allen Hamilton"]. Find a competitor's federal wins. |
| awardingAgencies | array | no | Optional top-tier agency names exactly as USAspending lists them, e.g. ["Department of Defense","Department of Veterans Affairs"]. |
| naicsCodes | array | no | Optional NAICS codes (contracts only), e.g. ["541512"]. |
| states | array | no | Optional 2-letter state codes, e.g. ["VA","TX"]. |
| awardType | string | no | contracts (default), idvs, grants, loans, direct_payments or other. Example values: "contracts" |
| startDate | string | no | YYYY-MM-DD. Defaults to 90 days ago. USAspending data starts 2007-10-01. |
| endDate | string | no | YYYY-MM-DD. Defaults to today. |
| minAmount | integer | no | Optional lower bound on award amount. |
| maxAmount | integer | no | Optional upper bound on award amount. |
| onlyNew | boolean | no | true = skip awards delivered by an earlier run with the same filters. |
| maxResults | integer | no | Maximum rows (1-10000). You pay per row: 100 rows = $0.15. Example values: 100 |
| waitSecs | integer | no | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow nextStep to poll |
This tool calls the Actor "gouda_studios/gleif-company-lei-lookup" and retrieves its output results. Actor description: Look up any company by name or LEI in GLEIF's official global registry. Get the legal name, LEI, status, addresses, jurisdiction and direct and ultimate parent companies. Ideal for KYC, vendor checks and data enrichment.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| companyNames | array | no | Legal names to look up, e.g. ["Apple Inc.","Siemens AG"]. Exact legal name match first, then fuzzy full-text. Example values: ["Apple Inc."] |
| leis | array | no | Optional 20-character LEIs to fetch directly. |
| registrationNumbers | array | no | Optional company-registry numbers as reported to GLEIF (registeredAs), e.g. a UK Companies House number. |
| country | string | no | Optional ISO 2-letter country of the legal address, e.g. US, GB, DE. Improves name matching. |
| activeOnly | boolean | no | true (default) = skip lapsed/inactive entities for name and registration searches. Example values: true |
| maxMatchesPerName | integer | no | How many candidate entities to return per name or registration number (1-50). Example values: 3 |
| includeParents | boolean | no | true (default) = add direct and ultimate parent (LEI, name, country) where reported. Example values: true |
| maxResults | integer | no | Maximum rows overall (1-5000). You pay per row: 100 rows = $0.30. Example values: 100 |
| waitSecs | integer | no | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow nextStep to poll |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Gouda Studios Agent Tools or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| get-actor-run | no tags | |
| get-dataset-items | no tags | |
| get-key-value-store-record | no tags | |
| abort-actor-run | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| gouda_studios--sam-gov-opportunities-feed | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
| gouda_studios--sec-edgar-filings-feed | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
| gouda_studios--usaspending-awards-search | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
| gouda_studios--gleif-company-lei-lookup | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Gouda Studios Agent Tools can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.