Skip to main content
Glama
Natden444

Pick an Agency

Pick an Agency — MCP Server

Pick an Agency is a free directory of 47,000+ marketing agencies with real client reviews and a free AI matching tool. This Model Context Protocol (MCP) server lets any AI agent — Claude, ChatGPT, Cursor, Gumloop, and more — search the directory and get matched with fitted agencies, directly in conversation.

Find the right marketing agency, backed by real reviews → pickanagency.com

Endpoint

Hosted, public, read-only. No API key required. Streamable HTTP:

https://www.pickanagency.com/api/mcp/mcp

Related MCP server: Online PR - Press Release Distribution

Tools

Tool

What it does

search_agencies

Search/filter the directory by free-text query, service (SEO, paid ads, social…), country, city, industry, and minimum rating.

match_agencies

The "Get Matched" engine: give a brief (services, location, budget, industry) and get a ranked shortlist of fitted agencies.

get_agency

A single agency's full profile (description, rating, services, website, recent reviews) by slug.

Every result links back to the agency's profile on pickanagency.com.

Connect it

Claude Code

claude mcp add --transport http pick-an-agency https://www.pickanagency.com/api/mcp/mcp

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "pick-an-agency": {
      "url": "https://www.pickanagency.com/api/mcp/mcp"
    }
  }
}

Claude Desktop / Claude.ai

Settings → Connectors → Add custom connector → paste the endpoint URL above.

Run locally (stdio)

Prefer a local server? This package is a thin stdio proxy to the hosted endpoint:

npx -y github:Natden444/pickanagency-mcp

Or in any MCP client config:

{ "mcpServers": { "pick-an-agency": { "command": "npx", "args": ["-y", "github:Natden444/pickanagency-mcp"] } } }

Example prompts

  • "Find the top SEO agencies in the US."

  • "Match me with a social media marketing agency in Paris, budget around $5k/month."

  • "Tell me about the agency at slug agence-pickers-paris-paris."

The agent calls the tools and answers with real agencies and their pickanagency.com profile links.

About

Pick an Agency helps companies find the right marketing agency, backed by real client reviews and free AI matching ("Get Matched" returns 5 fitted agencies in about 60 seconds). Built by Nathan Denier.

License

MIT © Pick an Agency

Troubleshooting

Tools don't appear after adding the connector — MCP servers connect at session start: open a new conversation (Claude.ai) or restart the session (claude again in Claude Code), then check the connectors/tools menu. In Claude Code, /mcp lists connected servers and their status.

"Connection failed" or timeouts — verify the endpoint URL is exactly https://www.pickanagency.com/api/mcp/mcp (the /mcp suffix matters). The server is public; no API key, OAuth, or headers are needed. Check status by visiting pickanagency.com — if the site is up, the MCP endpoint is up.

Empty results — broaden the filters: try a country instead of a small city, or drop min_rating. match_agencies requires at least one service in services.

get_agency says "no agency found" — slugs must be exact. Find the right slug with search_agencies first (it's the last path segment of the profile URL).

Still stuck? Email hello@pickanagency.com or open an issue.

Available Tools

3 tools
get_agencyGet an agency profileA
Read-only
Inspect

Fetch a single agency's full profile from Pick an Agency by its slug (the last path segment of its profile URL), including description, location, rating, services, website and a few recent client reviews. WHEN TO USE: after search_agencies or match_agencies returned a result the user wants to know more about, or when the user names a specific agency whose slug you already know. Don't guess slugs — find them via search_agencies first.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesAgency slug, e.g. 'clients-now-seo-agency-chennai'.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint. Description adds specific fields returned (description, location, rating, services, website, recent client reviews), covering output behavioral expectations beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise paragraph, no redundant sentences. Front-loaded purpose and content, then usage guidance. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately lists returned fields. Single parameter is fully explained. Tool is simple and description covers all necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description covers slug with example. Description adds 'last path segment of its profile URL' and reiterates to obtain from search, complementing the schema effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it fetches a single agency's full profile by slug. Distinguishes from siblings (search_agencies, match_agencies) by specifying it operates on a known slug.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use: after search/match returned results, or when user names a specific agency. Warns not to guess slugs, directing to search_agencies first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_agenciesGet matched with fitted agenciesA
Read-only
Inspect

Pick an Agency's matching engine. Given a buyer brief (services needed, location, budget, industry), returns a short ranked shortlist of agencies that best fit — the same logic behind the free 'Get Matched' tool. WHEN TO USE: when the user describes their needs/project and wants a RECOMMENDATION ('I need a social media agency in Paris, ~$5k/month'). Requires at least one service. Use search_agencies instead for open browsing/filtering without a brief; use get_agency to drill into one result afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
servicesYesServices the buyer needs, e.g. ['SEO', 'Content Marketing'].
countryNoTarget country.
cityNoTarget city.
budgetNoMonthly budget, e.g. '$5k-10k' or '5000'.
industryNoBuyer's industry, e.g. 'E-commerce'.
platformsNoAd platforms, e.g. ['Meta Ads', 'Google Ads'].
limitNoShortlist size (default 5).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, openWorldHint) already declare safety and variability. The description adds that it is the same logic as the free tool and requires at least one service, but does not disclose result format or pagination. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences plus a concise usage section. Every sentence adds value, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters (100% schema coverage) and no output schema, the description explains purpose and usage well. It covers when to use and the required parameter, but could mention result structure or pagination for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description mentions the required services and adds context for 'limit' (default 5), but does not significantly enhance parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a shortlist of agencies based on a buyer brief, using the same logic as the free 'Get Matched' tool. It distinguishes itself from sibling tools 'search_agencies' and 'get_agency'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides a 'WHEN TO USE' section with a concrete example and specifies alternatives: use 'search_agencies' for open browsing and 'get_agency' for drilling into results. It also notes the requirement for at least one service.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_agenciesSearch marketing agenciesA
Read-only
Inspect

Search Pick an Agency's directory of 47,000+ marketing agencies. Filter by free-text query, service (e.g. SEO, paid ads, social media), country, city, industry, and minimum rating. Returns the top matches with location, rating, reviews and profile link. WHEN TO USE: for browsing or filtering ('show me SEO agencies in Berlin', 'agencies named X') when the user wants a LIST to explore. Use match_agencies instead when the user describes their project/brief and wants a RECOMMENDATION; use get_agency for full detail on one specific agency.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text search (agency name, keyword).
serviceNoService, e.g. 'SEO', 'Social Media Marketing', 'Paid Advertising'.
countryNoCountry, e.g. 'United States', 'France'.
cityNoCity, e.g. 'Berlin', 'New York'.
industryNoIndustry focus, e.g. 'SaaS', 'Healthcare'.
min_ratingNoMinimum overall rating (0-5).
limitNoMax results (default 10).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds context about the tool being a search with filtering and returning a list, which aligns with and slightly enriches the annotation hints. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, front-loading the purpose and immediately stating filters and returns. The 'WHEN TO USE' section is clear and separate. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 optional parameters and no output schema, the description adequately covers the tool's functionality: it returns top matches with specific attributes. It mentions default limit implicitly. Could specify ordering or pagination, but not essential for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to add much. The description mentions filterable parameters (query, service, country, etc.) but does not deep dive into format or behavior beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states it searches a directory of 47,000+ marketing agencies with specific filters (query, service, country, etc.) and returns top matches with location, rating, reviews, profile link. It distinguishes from siblings by specifying the use case: listing vs recommendation vs detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'WHEN TO USE' section that contrasts with match_agencies (for recommendations) and get_agency (for full detail). Tells the agent to use this tool for browsing or filtering when the user wants a list to explore.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: search allows open browsing/filtering, match provides ranked recommendations based on a brief, and get retrieves full details of a specific agency. The descriptions explicitly state when to use each, preventing confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_agency, match_agencies, search_agencies), with clear, predictable verbs and plural/singular nouns matching the tool's output.

Tool Count5/5

Three tools is an ideal scope for a directory/matching service: search for browsing, match for recommendations, get for detailed profiles. No tool is redundant or missing for core workflows.

Completeness4/5

The tool set covers the primary user workflows (browse, match, detail). A minor gap is the lack of an explicit 'list all agencies' or compare tool, but search with no filters can approximate listing, and the set is otherwise complete for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Natden444/pickanagency-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server