# Gouda Studios Agent Tools (remote · gouda-studios-agent-tools.vercel.app)

Pay-per-result SAM.gov contracts, SEC EDGAR filings, USAspending awards and GLEIF LEI lookups.

- Trust score: 84/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gouda-studios-agent-tools.vercel.app`: 84/100 (this document), [markdown](https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools.md), [page](https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools)

## Channel facts

- Endpoint: `https://gouda-studios-agent-tools.vercel.app/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4856 tokens (~441/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Gouda Studios Agent Tools MCP server?

Gouda Studios Agent Tools is a hosted endpoint at https://gouda-studios-agent-tools.vercel.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http app-vercel-gouda-studios-agent-tools-gouda-studi 'https://gouda-studios-agent-tools.vercel.app/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "app-vercel-gouda-studios-agent-tools-gouda-studi": {
      "url": "https://gouda-studios-agent-tools.vercel.app/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "app-vercel-gouda-studios-agent-tools-gouda-studi": {
      "type": "http",
      "url": "https://gouda-studios-agent-tools.vercel.app/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.app-vercel-gouda-studios-agent-tools-gouda-studi]
url = "https://gouda-studios-agent-tools.vercel.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-vercel-gouda-studios-agent-tools-gouda-studi": {
      "type": "remote",
      "url": "https://gouda-studios-agent-tools.vercel.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-vercel-gouda-studios-agent-tools-gouda-studi --url 'https://gouda-studios-agent-tools.vercel.app/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-vercel-gouda-studios-agent-tools-gouda-studi:
    url: "https://gouda-studios-agent-tools.vercel.app/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "app-vercel-gouda-studios-agent-tools-gouda-studi": {
      "Transport": "http",
      "Url": "https://gouda-studios-agent-tools.vercel.app/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add app-vercel-gouda-studios-agent-tools-gouda-studi -t streamable-http -u 'https://gouda-studios-agent-tools.vercel.app/mcp'
```

### Other

```json
{
  "mcpServers": {
    "app-vercel-gouda-studios-agent-tools-gouda-studi": {
      "type": "http",
      "url": "https://gouda-studios-agent-tools.vercel.app/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 83, 0)

- [security] New tool “gouda_studios--google-trends-explorer”, which the server declares destructive

### 2026-11-03 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (11)

### `get-actor-run` (~269 tokens)

Get Actor run

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 30) waits up to that many seconds for terminal status before returning.

USAGE:
\- Use to check the status of a run started by any Actor-running tool.
\- Pass waitSecs > 0 to block until terminal (or until the cap elapses).

USAGE EXAMPLES:
\- user_input: Show details of run y2h7sK3Wc
\- user_input: Wait for run y2h7sK3Wc to finish

Input parameters:

- `runId` (string, required): The ID of the Actor run.
- `waitSecs` (integer): 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.

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `get-dataset-items` (~369 tokens)

Get dataset items

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 items or only selected fields).

USAGE EXAMPLES:
\- user_input: Retrieve results from dataset abc123
\- user_input: Get only metadata.url and title from dataset username~my-dataset

Input parameters:

- `clean` (boolean): If true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true.
- `datasetId` (string, required): Dataset ID or username~dataset-name.
- `desc` (boolean): If true, results are returned in reverse order (newest to oldest).
- `fields` (string): 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.
- `flatten` (string): 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 onl…
- `limit` (integer): Maximum number of items to return. Default is 20.
- `offset` (number): Number of items to skip at the start. Default is 0.
- `omit` (string): Comma-separated list of fields to exclude from results.

Output parameters:

- `apifyConsoleUrl` (string): Personalized Apify Console link to the dataset; present only for Console sessions
- `datasetId` (string): Dataset ID
- `itemCount` (number): Number of items returned
- `items` (array): Dataset items
- `limit` (number): Limit used for pagination
- `nextStep` (string): One follow-up action with tool name
- `offset` (number): Offset used for pagination
- `summary` (string): Summary of the result
- `totalItemCount` (number): Total items in dataset

### `get-key-value-store-record` (~147 tokens)

Get key-value store record

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 abc123
\- user_input: Get record data.json from store username~my-store

Input parameters:

- `keyValueStoreId` (string, required): Key-value store ID or username~store-name.
- `recordKey` (string, required): Key of the record to retrieve.

Output parameters:

- `contentType` (string): MIME type of the stored value
- `key` (string): Record key
- `keyValueStoreId` (string): Key-value store ID
- `summary` (string): Summary of the result
- `value`: The stored value (JSON, text, or binary)

### `abort-actor-run` (~161 tokens)

Abort Actor run

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 y2h7sK3Wc

Input parameters:

- `gracefully` (boolean): If true, the Actor run will abort gracefully with a 30-second timeout.
- `runId` (string, required): The ID of the Actor run to abort.

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--sam-gov-opportunities-feed` (~749 tokens)

gouda_studios/sam-gov-opportunities-feed

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, no API key needed. Filter by keyword, NAICS, set-aside, notice type, agency and state. Includes deadlines, days left and contracting officer contacts. Monitor mode returns only new notices.

Input parameters:

- `activeOnly` (boolean): true (default) = skip archived/inactive notices. Example values: true
- `agencyContains` (string): Optional case-insensitive text the agency path must contain, e.g. "Navy" or "Veterans Affairs".
- `apiKey` (string): 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.
- `includeContacts` (boolean): true (default) = include the contracting officer work name, email and phone published on the notice. Example values: true
- `includeDetails` (boolean): true (default) = fetch each notice for NAICS, PSC, set-aside, place of performance, full description and contacts. false = faster, fewer fields. Example values: true
- `keywords` (string): 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"
- `maxResults` (integer): 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
- `minDaysUntilResponse` (integer): Optional. Skip notices whose response deadline is fewer than N days away, so you only get ones you can still bid on.
- `naicsCodes` (array): 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): 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=Sur…
- `onlyNew` (boolean): 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.
- `postedWithinDays` (integer): Only notices posted or updated in the last N days. 0 = no date limit. Use 1-7 for daily/weekly monitoring.
- `setAsides` (array): Optional small-business set-aside codes, e.g. ["SBA","8A","SDVOSBC","WOSB","HZC"]. Empty = any set-aside or none.
- `states` (array): Optional 2-letter US state codes for the place of performance, e.g. ["VA","MD"]. Requires includeDetails=true. Empty = all locations.
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--sec-edgar-filings-feed` (~474 tokens)

gouda_studios/sec-edgar-filings-feed

This tool calls the Actor "gouda_studios/sec-edgar-filings-feed" and retrieves its output results.
Actor description: Monitor SEC EDGAR filings by ticker or CIK, including 8-K, 10-Q, 10-K, Form 4 insider trades, Form D and S-1. Each result has the company, form type, filing date and document links. Only-new mode turns it into an alert feed for investors, research and AI agents.

Input parameters:

- `ciks` (array): Optional SEC Central Index Keys, e.g. ["320193"]. Leave tickers and CIKs empty to get latest filings across all companies.
- `contactEmail` (string): Optional. SEC asks automated clients to identify themselves; this email is sent in the User-Agent header to sec.gov only.
- `filedWithinDays` (integer): Only filings from the last N days. 0 = no limit (company mode returns the ~1000 most recent). Example values: 7
- `formTypes` (array): 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"]
- `maxResults` (integer): Maximum rows (1-5000). You pay per row, so this caps cost: 100 rows = $0.20. Example values: 100
- `onlyNew` (boolean): true = skip filings delivered by an earlier run with the same tickers/CIKs/forms. Use with a schedule for an alert feed.
- `tickers` (array): Optional stock tickers, e.g. ["AAPL","NVDA"]. Resolved to CIKs with the SEC ticker file. Example values: ["AAPL","TSLA"]
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--usaspending-awards-search` (~473 tokens)

gouda_studios/usaspending-awards-search

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, NAICS, state, date and amount. Get contracts and grants with amounts, recipients, awarding agency and performance dates as JSON. Track competitors, find who won contracts and build sales prospect lists.

Input parameters:

- `awardType` (string): contracts (default), idvs, grants, loans, direct_payments or other. Example values: "contracts"
- `awardingAgencies` (array): Optional top-tier agency names exactly as USAspending lists them, e.g. ["Department of Defense","Department of Veterans Affairs"].
- `endDate` (string): YYYY-MM-DD. Defaults to today.
- `keywords` (array): Optional words to match in award descriptions, e.g. ["cybersecurity"]. Example values: ["cybersecurity"]
- `maxAmount` (integer): Optional upper bound on award amount.
- `maxResults` (integer): Maximum rows (1-10000). You pay per row: 100 rows = $0.15. Example values: 100
- `minAmount` (integer): Optional lower bound on award amount.
- `naicsCodes` (array): Optional NAICS codes (contracts only), e.g. ["541512"].
- `onlyNew` (boolean): true = skip awards delivered by an earlier run with the same filters.
- `recipientNames` (array): Optional company or organization names (or UEIs), e.g. ["Booz Allen Hamilton"]. Find a competitor's federal wins.
- `startDate` (string): YYYY-MM-DD. Defaults to 90 days ago. USAspending data starts 2007-10-01.
- `states` (array): Optional 2-letter state codes, e.g. ["VA","TX"].
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--gleif-company-lei-lookup` (~428 tokens)

gouda_studios/gleif-company-lei-lookup

This tool calls the Actor "gouda_studios/gleif-company-lei-lookup" and retrieves its output results.
Actor description: Find any company LEI number by name, or look up an LEI, in the official GLEIF global registry. Get the legal name, status, jurisdiction, registration number, legal and HQ address, and direct and ultimate parent companies. For KYC, KYB, vendor checks and data enrichment.

Input parameters:

- `activeOnly` (boolean): true (default) = skip lapsed/inactive entities for name and registration searches. Example values: true
- `companyNames` (array): Legal names to look up, e.g. ["Apple Inc.","Siemens AG"]. Exact legal name match first, then fuzzy full-text. Example values: ["Apple Inc."]
- `country` (string): Optional ISO 2-letter country of the legal address, e.g. US, GB, DE. Improves name matching.
- `includeParents` (boolean): true (default) = add direct and ultimate parent (LEI, name, country) where reported. Example values: true
- `leis` (array): Optional 20-character LEIs to fetch directly.
- `maxMatchesPerName` (integer): How many candidate entities to return per name or registration number (1-50). Example values: 3
- `maxResults` (integer): Maximum rows overall (1-5000). You pay per row: 100 rows = $0.30. Example values: 100
- `registrationNumbers` (array): Optional company-registry numbers as reported to GLEIF (registeredAs), e.g. a UK Companies House number.
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--website-contact-extractor` (~437 tokens)

gouda_studios/website-contact-extractor

This tool calls the Actor "gouda_studios/website-contact-extractor" and retrieves its output results.
Actor description: Email extractor and contact scraper for lead gen. Give it any list of websites and get emails, phones, LinkedIn, Facebook, Instagram, X and TikTok links and addresses, one deduplicated row per site. Cloudflare emails decoded, phones validated. Pay only for sites where contacts are found.

Input parameters:

- `checkMx` (boolean): Adds a free DNS check that each email domain can receive mail. Flags typos and dead domains. Example values: true
- `defaultCountry` (string): Two-letter country code used to read local phone numbers that have no +country prefix, e.g. US, GB, DE, AU. Example values: "US"
- `maxPagesPerSite` (integer): How many pages to read on each site, starting with the homepage and then the most likely contact pages (Contact, About, Team, Impressum, Support). You pay per site, not per page, so higher values onl…
- `proxyConfiguration` (object): Optional. Most business sites work without a proxy. Turn on Apify Proxy if many sites time out or block requests. Example values: {"useApifyProxy":false}
- `respectRobotsTxt` (boolean): Skip pages that a site's robots.txt asks crawlers not to visit. Example values: true
- `startUrls` (array, required): **REQUIRED** Websites or domains to extract contacts from, one per line. Examples: https://www.example.com or example.com. Each site becomes exactly one output row. Example values: ["https://apify.co…
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--youtube-transcript-extractor` (~408 tokens)

gouda_studios/youtube-transcript-extractor

This tool calls the Actor "gouda_studios/youtube-transcript-extractor" and retrieves its output results.
Actor description: Get the transcript of any YouTube video or Short as clean text, timestamped text, segments and SRT. Bulk URLs, any language, auto-translate. Pay only for transcripts you get; failed videos are free.

Input parameters:

- `includeSegments` (boolean): Add an array of segments with start time and duration. Example values: true
- `includeSrt` (boolean): Add an SRT subtitle file as a string.
- `languages` (array): Language codes in priority order, e.g. en, es, de. If none match, the first available transcript is returned. Example values: ["en"]
- `maxVideos` (integer): Stop after this many videos. Example values: 1000
- `preferManual` (boolean): Use manually created captions over auto-generated ones when both exist. Example values: true
- `proxyConfiguration` (object): Optional. Leave off to use our built-in residential proxy, included in the price. Set your own only if you want to. Example values: {"useApifyProxy":false}
- `translateTo` (string): Language code to auto-translate the transcript into using YouTube's translation, e.g. en.
- `videos` (array, required): **REQUIRED** Watch URLs, youtu.be links, Shorts, live or embed URLs, or bare 11-character video IDs. Example values: ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

### `gouda_studios--google-trends-explorer` (~381 tokens)

gouda_studios/google-trends-explorer

This tool calls the Actor "gouda_studios/google-trends-explorer" and retrieves its output results.
Actor description: Bulk Google Trends data for any keyword: interest over time, interest by region, top and rising related queries and topics, plus today's trending searches. Any country, time range, category, or YouTube/News/Shopping search. Pay only per successful keyword; blocked terms are free.

Input parameters:

- `category` (integer): Google Trends category number, 0 for all categories.
- `geo` (string): ISO code like US, GB, DE, or US-CA. Leave empty for worldwide.
- `interestByRegion` (boolean): 0-100 interest for each subregion.
- `interestOverTime` (boolean): Timeline of 0-100 interest values.
- `language` (string): Interface language for names, e.g. en-US, de, es.
- `maxTerms` (integer): Stop after this many terms.
- `property` (string): Which Google search the trend data comes from.
- `relatedQueries` (boolean): Top and rising related searches.
- `relatedTopics` (boolean): Top and rising related topics.
- `searchTerms` (array): Keywords or phrases. Each one is fetched separately and returns one result row.
- `timeRange` (string): How far back to look.
- `trendingNow` (boolean): Adds one row per currently trending search in the chosen country, with traffic and news links.
- `waitSecs` (integer): 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 pol…

Output parameters:

- `actorId` (string): Stable Apify Actor ID from the run record
- `actorName` (string): "username/actor-name"
- `apifyConsoleUrl` (string): Personalized Apify Console link to the run; present only for Console sessions
- `exitCode` (number): Actor process exit code; populated for terminal states (especially FAILED)
- `finishedAt` (string): ISO timestamp when the run finished (terminal states only)
- `nextStep` (string): One primary follow-up action with identifiers interpolated
- `runId` (string): Actor run ID
- `startedAt` (string): ISO timestamp when the run started
- `stats` (object): Run statistics
- `status` (string): Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
- `statusMessage` (string): Pass-through from Apify run.statusMessage
- `storages` (object): Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
- `summary` (string): Past-tense summary of the run state
- `tip` (object): Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools#diagnostics

## Score history

- 2026-11-05: 84
- 2026-11-04: 83
- 2026-11-03: 83
- 2026-11-02: 82
- 2026-11-01: 82
- 2026-10-31: 81
- 2026-10-30: 81
- 2026-10-29: 80
- 2026-10-28: 80
- 2026-10-27: 79
- 2026-10-26: 79
- 2026-10-25: 78
- 2026-10-24: 78
- 2026-10-23: 77
- 2026-10-22: 77
- 2026-10-21: 77
- 2026-10-20: 76
- 2026-10-19: 76

## Common questions

### What is the Gouda Studios Agent Tools MCP server?

Gouda Studios Agent Tools is an MCP server listed in the public MCP registry as app.vercel.gouda-studios-agent-tools/gouda-studios-agent-to…. Pay-per-result SAM.gov contracts, SEC EDGAR filings, USAspending awards and GLEIF LEI lookups. This page covers its hosted endpoint (https://gouda-studios-agent-tools.vercel.app/mcp).

### Is the Gouda Studios Agent Tools MCP server safe to use?

Gouda Studios Agent Tools scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Gouda Studios Agent Tools MCP server expose?

Gouda Studios Agent Tools exposes 11 tools: get-actor-run, get-dataset-items, get-key-value-store-record, abort-actor-run, gouda_studios--sam-gov-opportunities-feed, and 6 more. Their descriptions and schemas cost roughly 4,296 tokens of context every time the server is loaded.

### Does the Gouda Studios Agent Tools MCP server require authentication?

Yes. Gouda Studios Agent Tools asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Gouda Studios Agent Tools MCP server still maintained?

Gouda Studios Agent Tools is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Gouda Studios Agent Tools MCP server?

VerifyMCP ran 13 checks on Gouda Studios Agent Tools, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://gouda-studios-agent-tools.vercel.app/mcp
- Repository: https://github.com/goudastudios/gouda-studios-agent-tools
- Website: https://gouda-studios-agent-tools.vercel.app/
- Changelog RSS feed: https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools.json
- HTML version of this page: https://verifymcp.io/servers/app-vercel-gouda-studios-agent-tools-gouda-studios-agent-tools/gouda-studios-agent-tools
