pickanagency
Server Details
Search 47,000+ marketing agencies and get AI-matched with fitted agencies, from Pick an Agency.
- Status
- Healthy
- Uptime
- 100.0% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Natden444/pickanagency-mcp
- GitHub Stars
- 2
- Server Listing
- Pick an Agency
TDQS
Scored across 3 tools
Each tool has a distinct role: browsing/filtering, matching to a brief, and fetching a single profile. The descriptions explicitly call out when to use each, minimizing confusion.
All tool names follow the same verb_noun snake_case pattern: get_agency, match_agencies, search_agencies. This is predictable and consistent.
Three tools is appropriate for an agency discovery server: search, match, and detail view. Each tool earns its place with a clear purpose.
The surface covers the full user journey for agency discovery: browse/search the directory, get recommendations from a brief, and drill into a specific agency's profile. There are no obvious dead ends for a read-only directory domain.
Available Tools
3 toolsget_agencyGet an agency profileARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Agency slug, e.g. 'disruptive-advertising'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is structurally known. The description adds meaningful behavioral context by specifying the response contents (full profile including a few recent client reviews) and by explaining that the slug is derived from the profile URL. It does not describe error/not-found behavior, but that is minor for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears first, followed by the return payload and usage guidance. Every sentence earns its place, and there is no repetition of the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with full schema coverage and rich annotations, this description is complete. It tells the agent what the tool does, when to use it, how to get the slug, and what data will be returned. The lack of an output schema is compensated by the explicit field list in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter well (100% coverage, field name, example), so the baseline is 3. The description adds real value by defining the slug as 'the last path segment of its profile URL' and by warning agents not to guess it, which is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a specific resource ('a single agency's full profile'), and identifies the key identifier ('slug'). It also enumerates the returned fields (description, location, rating, services, website, reviews), and clearly distinguishes itself from the sibling list/search tools by focusing on fetching details for one known agency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit WHEN TO USE guidance: after search_agencies or match_agencies returns a relevant result, or when the user names a specific agency with a known slug. It also gives an explicit exclusion: 'Don't guess slugs - find them via search_agencies first.' This fully routes the agent to the correct workflow.
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 agenciesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Target city. | |
| limit | No | Shortlist size (default 5). | |
| budget | No | Monthly budget, e.g. '$5k-10k' or '5000'. Agencies whose stated minimum budget is above it rank lower. | |
| country | No | Target country. | |
| industry | No | Buyer's industry, e.g. 'E-commerce'. | |
| services | Yes | Services the buyer needs, e.g. ['SEO', 'Content Marketing']. | |
| platforms | No | Ad platforms, e.g. ['Meta Ads', 'Google Ads']. Agencies listing them rank higher. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, establishing this as a safe lookup. The description adds meaningful context: it returns a ranked shortlist, mirrors the 'Get Matched' tool's logic, and implies matching ranking behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded, followed by a clear WHEN TO USE block and explicit sibling routing. Every sentence contributes to selection or invocation, and there is no fluff or redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only matching endpoint with a fully documented schema and no output schema, this description is complete. It states the expected input, what is returned (a short ranked shortlist), required minimum input (one service), and how to navigate to alternatives. Nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines every parameter including constraints like minItems for services and budget ranking behavior. The description only paraphrases the general buyer brief fields (services, location, budget, industry) without adding new semantic value, which matches the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb and resource: 'Agency's matching engine' that 'returns a short ranked shortlist of agencies' from a buyer brief. It distinguishes itself from siblings by explicitly naming search_agencies and get_agency and when each is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: when the user describes needs and wants a recommendation, and requires at least one service. It also names alternatives: use search_agencies for open browsing/filtering without a brief rentrant, and get_agency to drill into a result afterwards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_agenciesSearch marketing agenciesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City, e.g. 'Berlin', 'New York'. | |
| limit | No | Max results (default 10). | |
| query | No | Free-text search (agency name, keyword), up to 200 characters. | |
| country | No | Country, e.g. 'United States', 'France'. | |
| service | No | Service, e.g. 'SEO', 'Social Media Marketing', 'Paid Advertising'. | |
| industry | No | Industry focus, e.g. 'SaaS', 'Healthcare'. | |
| min_rating | No | Minimum overall rating (0-5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description complements them by stating that it returns top matches with location, rating, reviews, and profile link. It does not contradict annotations and adds useful context about the return format, but does not describe pagination or further side effects, which is acceptable given the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and efficient: it states the resource, lists filters, specifies returns, then provides a dedicated WHEN TO USE section with alternatives. Every sentence earns its place, and the core purpose is front-loaded. It is longer than minimal but every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly explains the return fields (location, rating, reviews, profile link). It covers the primary use case with examples, clearly routes to siblings, and handles the 7 optional parameters adequately without requiring extra details like pagination. Nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all seven parameters are individually documented in the input schema. The description merely lists the filters (query, service, country, city, industry, min rating) and provides examples like 'Berlin' and 'New York' already present in the schema. It adds no additional semantic meaning beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it searches a directory of 47,000+ marketing agencies, lists the available filters, and specifies what it returns (location, rating, reviews, profile link). It also differentiates itself from siblings by naming what it is not (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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a WHEN TO USE section: 'for browsing or filtering ... when the user wants a LIST to explore.' It names the alternatives match_agencies and get_agency with clear conditions (recommendation vs full detail). This leaves nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
get_agency1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"Agency slug, e.g. 'clients-now-seo-agency-chennai'."New value: +"Agency slug, e.g. 'disruptive-advertising'."
- Changed
match_agencies2 fields changed- changed
Input schema / properties / budget / descriptionPrevious value: -"Monthly budget, e.g. '$5k-10k' or '5000'."New value: +"Monthly budget, e.g. '$5k-10k' or '5000'. Agencies whose stated minimum budget is above it rank lower." - changed
Input schema / properties / platforms / descriptionPrevious value: -"Ad platforms, e.g. ['Meta Ads', 'Google Ads']."New value: +"Ad platforms, e.g. ['Meta Ads', 'Google Ads']. Agencies listing them rank higher."
- Changed
search_agencies1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Free-text search (agency name, keyword)."New value: +"Free-text search (agency name, keyword), up to 200 characters."
3 tool updates
- First observed
get_agency - First observed
match_agencies - First observed
search_agencies
Related MCP Connectors
Search and compare 2,000+ Dutch marketing agencies by specialism, city and cases. Never pay-to-rank.
AI marketing agent for Google Ads, Meta, GA4, TikTok, LinkedIn, Shopify, HubSpot and more.
Coservices marketing and IT agency services directory for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSearch PR agencies, browse publications, buy press release distribution & media placements. Zero-config, no API key needed.5 npmMIT
- AlicenseNot gradedqualityDmaintenanceA search engine for AI agents that enables searching, comparing, and discovering over 500 businesses across 112 categories with structured pricing data. It allows users to filter listings by price, category, and country to find and analyze specific business services.6 npmMIT
- AlicenseAqualityFmaintenanceUniversal search engine for AI agents. Discover products, services, and businesses across every category. 10 MCP tools, zero LLM calls, millisecond responses.114AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceSearches and analyzes competitor ads and content across Meta, Google, Instagram, TikTok, and YouTube with AI-powered creative analysis and cross-platform brand discovery.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.