espaciarte-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@espaciarte-mcpFind art galleries within 5km of downtown Monterrey"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
espaciarte-mcp
Minimal MCP server exposing Espaciarte's public space discovery to external AI clients (Claude Desktop, Cursor). A thin, read-only wrapper over the backend REST API — no database access, no LLM calls, no auth, no secrets.
Tools
Tool | Wraps | Purpose |
|
| Geo-search published spaces ( |
|
| Full public detail of one published space |
The backend already handles privacy (published spaces only, obfuscated locations, no PII); this server returns its responses untouched.
Related MCP server: geocontext
Setup
pnpm install
pnpm buildRequires the backend running (default http://localhost:8000 — pnpm dev in espaciarte-backend/ with the DB up).
Configuration
Single env var:
Var | Default | Purpose |
|
| Espaciarte backend URL |
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"espaciarte": {
"command": "node",
"args": ["/Users/vicentecantu/Development/espaciarte/espaciarte-mcp/dist/index.js"],
"env": { "BACKEND_BASE_URL": "http://localhost:8000" }
}
}
}Cursor (~/.cursor/mcp.json or .cursor/mcp.json)
{
"mcpServers": {
"espaciarte": {
"command": "node",
"args": ["/Users/vicentecantu/Development/espaciarte/espaciarte-mcp/dist/index.js"],
"env": { "BACKEND_BASE_URL": "http://localhost:8000" }
}
}
}Smoke test
pnpm smoke # 9-check battery: both tools live, error paths, privacy fields (needs backend up)
pnpm inspect # MCP Inspector UI against the built serverOr headless: npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
Note: local seed data is geo-centered on Monterrey (25.6866, -100.3161) — searches around other cities correctly return 0 items.
Available Tools
2 toolsget_space_detailsGet Espaciarte space detailsARead-only
Fetch the full public detail of one published Espaciarte space by id: description, rules, photos, activities, weekly availability, pricing, add-ons, and host profile.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Space id, from a prior search_spaces result item. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates a safe read operation. The description adds that the space must be 'published' and that the details are 'public', which clarifies access constraints and what the result contains. It stops short of describing error behaviors, but overall adds value beyond the annotation.
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 a single front-loaded sentence. It starts with the verb and resource, then efficiently lists the key data points without redundant words. No filler.
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 one-parameter fetch with no output schema, the description adequately explains what the tool returns by enumerating the fields. It also distinguishes from the sibling tool and provides enough context for an agent to use 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 for the single parameter is 100%, with an explicit description ('Space id, from a prior search_spaces result item'). The tool description does not add additional parameter-specific context, so the baseline of 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 uses a specific verb ('Fetch') and resource ('full public detail of one published Espaciarte space by id'), and enumerates the contained fields (description, rules, photos, etc.). This clearly distinguishes it from the sibling search_spaces, which presumably returns a list/summary.
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 implies usage after search_spaces by noting the id comes from 'a prior search_spaces result item' in the parameter schema. It doesn't explicitly name alternatives or exclusions, but the context of fetching full detail for a single space vs. searching is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_spacesSearch Espaciarte spacesARead-only
Search published spaces (event venues, workspaces, studios…) on Espaciarte around a geographic point, with optional filters. Returns a paginated list of public space summaries: name, venue type, capacity, pricing, photos, and approximate (obfuscated) location.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the search center. Supply approximate coordinates for the place the user names (e.g. "Polanco, CDMX" ≈ 19.433). | |
| lng | Yes | Longitude of the search center (e.g. "Polanco, CDMX" ≈ -99.192). | |
| date | No | Only spaces available on this calendar date, YYYY-MM-DD. | |
| radius | Yes | Search radius in meters around the center, 500–50000. 5000 is a good default for a neighborhood. | |
| activity | No | Only spaces that support this activity category. | |
| amenities | No | Only spaces offering these amenities. | |
| spaceTypes | No | Only spaces of these venue types. | |
| maxCapacity | No | Maximum guest capacity (inclusive). | |
| minCapacity | No | Minimum guest capacity (inclusive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation (safe read operation), the description discloses useful behavioral traits: results are paginated, location data is approximate/obfuscated, and the returned set is limited to public/published spaces. It also states the exact fields included in summaries. This adds valuable context beyond the annotation, though it does not cover potential edge cases like empty results or error responses.
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 a single, information-dense sentence that front-loads the core purpose and then lists the return fields. It avoids redundancy and every clause earns its place, making it highly concise and well-structured.
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?
Given there is no output schema, the description compensates by specifying exactly what the returned summaries include (name, venue type, capacity, pricing, photos, location). It also notes pagination and obfuscated location. While the tool has 9 parameters, the 100% schema coverage handles parameter details. It does not mention ordering (e.g., by distance) or pagination mechanics, but the description is largely complete for a search tool.
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 has 100% description coverage for all parameters, so the description does not need to compensate. The description adds no parameter-specific semantics beyond what the schema already provides. According to the rubric, baseline 3 is appropriate when schema coverage is high and the description adds no extra meaning.
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's purpose: searching published spaces on Espaciarte around a geographic point with optional filters. It specifies the resource type (event venues, workspaces, studios) and the output (a paginated list of summaries). This distinguishes it from the sibling get_space_details, which presumably returns full details, by explicitly mentioning 'summaries'.
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 clear context for use: when searching for published spaces on Espaciarte by location and filters. It does not explicitly name the alternative get_space_details, but the phrase 'public space summaries' implicitly suggests that full details are available elsewhere. While it lacks an explicit 'when not to use' statement, the scope ('published spaces', 'public') offers some exclusion criteria.
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.
2 tool updates
v0.1.0- First observed
get_space_details - First observed
search_spaces
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one searches for spaces with filtering, while the other retrieves full details for a specific space. There is no overlap or ambiguity in their intended use.
Both tools follow a consistent verb_noun pattern (search_spaces, get_space_details). Though the verbs differ, the structure is predictable and readable.
With only 2 tools, the server feels minimal but not absurdly thin. The scope appears to be read-only space exploration, and these two tools cover the primary needs, though more operations could be expected.
For a public-facing space discovery API, the combination of search and detail retrieval covers the core use case. Missing operations like booking or creating are outside the apparent purpose, so no critical gaps are evident.
Maintenance
Related MCP Connectors
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
- earthOAuthcom.mireye
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to interact with the SpaceTraders API, managing agents, fleets, contracts, and trading operations in the SpaceTraders universe.MIT
- AlicenseNot gradedqualityFmaintenanceAn experimental MCP server providing spatial context for LLMs by interfacing with French Geoplateforme services. It enables tasks such as geocoding, altitude lookups, and querying administrative, cadastral, or urban planning data.114MIT
- AlicenseAqualityDmaintenanceMCP server for spatial queries via the Terranode Geospatial API, enabling AI agents to perform point-in-polygon lookups, nearest feature search, distance calculations, and spatial joins.635MIT
- FlicenseNot gradedqualityBmaintenancePython MCP server for querying Overture Maps building footprint data via address search, building lookups, and nearby building listings.-