Muralists Directory
Server Details
Search the curated directory of professional muralists and street artists in Europe.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The tools form two overlapping pairs: search/search_muralists and fetch/get_muralist_profile. The descriptions add some distinction, but an agent could easily select the wrong tool without careful reading.
Names mix generic verbs like fetch and search with more specific verb_noun forms like get_muralist_profile and search_muralists. The pattern is readable but not consistent across the set.
Four tools is a reasonable number for a directory-oriented server. However, two of the tools are largely redundant, so the effective surface is smaller than the count suggests.
The server covers the core directory workflow: searching for muralists and retrieving detailed profile information. It lacks broader browsing or direct contact/quote actions, but these are minor gaps for a read-only directory.
Available Tools
4 toolsfetchFetch a muralist profileARead-onlyInspect
Retrieve the full text of one Muralists directory profile by id, for citation. Ids come from the search tool.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The profile id (slug) returned by search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | Absolute canonical URL of the profile page. |
| text | Yes | Plain-text rendering of the profile (Dutch). |
| title | Yes | |
| metadata | Yes | Extra fields: city, styles, pro status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only safety profile (readOnlyHint true, openWorldHint false). The description adds that it returns the full profile text and is intended for citation, but does not discuss output size, rate limits, or any special handling. This is acceptable but not rich.
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?
Two short sentences, front-loaded with the action and resource, and the id-source hint is placed second. No filler or repetition.
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 one-parameter read-only fetch with an output schema, the definition is nearly complete. The main gap is that it does not explain how fetch relates to the similarly named sibling get_muralist_profile, so an agent may be uncertain which to invoke.
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?
Input schema coverage is 100% and the id parameter is fully described as a slug returned by search. The description repeats this same provenance rather than adding new parameter-level meaning, so it earns the baseline score.
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 clearly states a specific verb and resource: retrieve the full text of one Muralists directory profile by id, and adds the purpose (citation). However, it does not differentiate fetch from the sibling get_muralist_profile, which appears to target the same resource.
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?
It gives clear usage context: ids come from the search tool and the use case is citation. It does not explicitly state when not to use this tool or name alternatives, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_muralist_profileGet muralist profileARead-onlyInspect
Get the full profile of a specific muralist from the Muralists directory: bio, styles, portfolio of realized works with locations, typical project types, and how to request a quote. Use after search_muralists to get details on a candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The muralist's profile slug — the stable public identifier returned as `id` by search_muralists and used in the profile URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| bio | Yes | The artist's own statement, in Dutch. |
| city | Yes | |
| name | Yes | |
| works | Yes | Realized murals with location and year. |
| is_pro | Yes | Active paying member of the directory. Pro profiles rank first. |
| region | No | |
| styles | Yes | |
| country | Yes | ISO 3166-1 alpha-2 country the artist is based in. |
| summary | Yes | |
| contact_url | Yes | Where to reach this artist — currently the public profile page. |
| profile_url | Yes | |
| years_active | No | |
| how_to_commission | Yes | |
| accepts_commissions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the safe read-only nature is established. The description adds that it returns a 'full profile' with specific sections, which is useful. However, it doesn't disclose details like whether profile data is aggregated from external sources or if portfolio images are included, though for a read-only profile tool this gap is acceptable.
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?
Two sentences, front-loaded with the tool's purpose and content, then a clear usage directive. Every word earns its place.
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 simple read-only tool with one parameter and clear schema documentation, the description covers what the tool does and when to use it. The only minor gap is not explicitly stating the return format, but the description lists the profile sections which implies the structure.
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 input schema documents the id parameter thoroughly, including its nature as a slug, stability, source, and URL usage. The description doesn't repeat this but complements by indicating the id comes from search_muralists. With one well-documented parameter, the baseline is elevated.
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 clearly states the tool gets a full profile of a specific muralist, enumerating the content (bio, styles, portfolio, project types, quote request). It distinguishes itself from the sibling search_muralists by specifying 'a specific muralist' and directing use 'after search_muralists'.
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 says to use after search_muralists to get details on a candidate. This gives clear sequencing guidance and differentiates from the search alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch the Muralists directoryARead-onlyInspect
Search the Muralists directory of muralists and street artists by free text (name, city, style). Returns matching artists with their profile URLs. Use fetch with a returned id to read the full profile.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text search query, e.g. 'lettering artist Utrecht'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, so no side-effect disclosures are needed. The description adds behavioral value by clarifying that results are limited to matching artists and profile URLs and that full profile content requires a separate fetch call – a useful boundary beyond the annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads the action and scope, the second adds the return format and next step. Every word earns its place; no redundancy.
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?
With one required parameter, a read-only annotation, and an existing output schema, the description supplies the essential usage flow and return shape. The only remaining gap is the relationship to the search_muralists sibling, which prevents a 5.
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 only parameter (query) is already fully described in the schema (100% coverage), giving a baseline of 3. The tool description enriches this by specifying what the free-text query can target – name, city, style – which is not present in the schema. Thus it earns a 4.
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 opens with a clear verb and resource – 'Search the Muralists directory' – and enumerates searchable facets (name, city, style). It distinguishes itself from fetch/get_muralist_profile by noting that only profile URLs are returned and that fetch is needed for full profiles. However, it does not differentiate from the sibling search_muralists, leaving ambiguity between the two search tools.
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?
It provides a concrete workflow: run a free-text search, receive profile URLs, then 'Use fetch with a returned id to read the full profile.' This is clear context for when this tool fits. It does not state explicit exclusions or when to prefer search_muralists, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_muralistsSearch muralistsARead-onlyInspect
Search a curated directory of muralists and street artists in Europe. Filter by city/region and style (e.g. abstract, figurative, lettering, photorealistic, geometric). Returns matching artists with portfolio highlights and profile URLs. Use this when someone wants to find, hire, or commission a mural artist.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of artists to return (1-10). | |
| query | No | Free text over name, tagline, bio, city and styles. | |
| style | No | Style label, e.g. abstract, figurative, lettering, photorealistic, geometric. | |
| region | No | Dutch city, province or region, e.g. 'Rotterdam', 'Noord-Holland'. Matches city or region. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total_matches | Yes | How many artists matched before the limit was applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful context: the directory is curated, it supports filtering, and results include portfolio highlights and profile URLs. No contradiction with annotations exists. It could go deeper on sorting or empty-result behavior, but the read-only nature and result contents are sufficiently transparent.
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 two compact sentences with no filler. The first sentence leads with the verb and resource, and the second sentence covers return value and use case. Every phrase earns its place.
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?
The description is mostly complete: it states scope, filters, return contents, and an intended use case, and an output schema exists so return details are covered. However, the mismatch between 'in Europe' and a region parameter that only accepts Dutch provinces/cities is a meaningful gap. An agent could use this tool for a Berlin muralist request and get nothing because the actual data scope is narrower than described.
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 already documents all four parameters with 100% coverage, so the baseline is 3. The description reinforces the idea of filtering by city/region and style, which maps to the region and style parameters, but adds no new detail beyond the schema. It stays at baseline rather than being elevated.
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 tool searches a curated directory of muralists and street artists, and uses example styles to define scope. It differentiates itself from the sibling get_muralist_profile by emphasizing directory search rather than individual profiles. However, the geographic scope is slightly overstated: 'Europe' conflicts with the schema's Dutch-only region parameter.
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 an explicit use case: 'Use this when someone wants to find, hire, or commission a mural artist.' This gives clear context for when to invoke the tool. No exclusions or alternative routing to siblings are mentioned, and the Netherlands-only limitation is not called out.
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.
4 tool updates
- First observed
fetch - First observed
get_muralist_profile - First observed
search - First observed
search_muralists
Related MCP Connectors
Search real coworking spaces in Europe and the Middle East: prices, amenities, locations.
Search European tech funding rounds, companies, investors and exits — sourced, EUR-normalized.
Search AI-powered audio tours and points of interest by city. Walking, cycling, and driving tours.
Search 2,500+ curated architecture, design, photography and art projects. Free tier, no signup.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSearch 2,756+ verified AI tools, generate step-by-step AI workflows, compare tools head-to-head, and find GDPR-compliant or EU-hosted AI solutions — powered by GateOnAI, Europe's AI Workflow Intelligence Platform.MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to European cultural heritage collections and artworks, allowing users to search for items, get detailed information about specific artworks, browse collections by institution, and receive AI-powered recommendations based on interests.1-
- AlicenseAqualityDmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and retrieve enriched European tech freelance job listings from EURES and Arbeitnow, with filtering by keyword, category, seniority, work mode, or contract type and access to full job details via ID.-
Glama MCP Gateway
Add one secure layer between your agents and this server.