What Artsdata MCP server does
The Artsdata MCP server gives MCP-compatible agents access to data about Canadian cultural activity. Its search functions cover entities and events, while entity lookup supports retrieving a specific entity. The available data sources include Artsdata’s reconciliation service, schema definition, SPARQL endpoint, and Databus.
This server fits the 🎨 Art & Culture category and is intended for applications that need structured information about artists, organizations, places, and events. It can also provide metadata for the latest Artsdata core-minus-provenance dump, allowing a client to discover a current download without receiving the dump contents through MCP.
How it works
The application is built with Rails and exposes its MCP transport at POST /mcp using Streamable HTTP. A health check is available at GET /up, and GET /llms.txt provides a machine-readable guide for agents. The publicly deployed endpoint is https://mcp.artsdata.ca/mcp.
Search-related tools use the configured reconciliation service. The sparql_query tool sends queries to the configured Artsdata SPARQL endpoint, applies a read timeout, and limits the number of returned rows. If the result exceeds the configured limit, the response is marked as truncated.
The artsdata_dump resource uses the Artsdata Databus to find the newest version of the monthly core-minus-provenance artifact. A resource read returns JSON metadata such as the download URL, version, format, and compression rather than the file itself. Clients can compare versions between reads and download the artifact separately.
Setup and configuration
Run the server locally with Ruby 4.0.6, Rails 8.1, and Bundler. Install dependencies with bundle install, then start Rails with bundle exec rails server. The default local address is http://localhost:3000. Docker support is also provided, including production and staging instance profiles.
Set ARTSDATA_RECONCILIATION_ENDPOINT to the reconciliation service used by entity and event search tools. Optional settings select the schema URL, schema cache duration, CORS origins, Artsdata API endpoint, SPARQL endpoint, timeout, and maximum row count. ARTSDATA_INSTANCE_TYPE selects the production or staging Docker profile.
Tools and capabilities
The Artsdata MCP server registers these documented capabilities:
search_entities searches Artsdata entities.
get_entity retrieves an entity.
search_events searches events.
get_schema compiles the configured Turtle schema.
sparql_query runs a query against the configured SPARQL endpoint.
artsdata_dump exposes metadata for the latest core-minus-provenance dump.
Limitations and notes
The dump resource does not return dump contents; clients must use its download URL. SPARQL results are subject to the configured timeout and row limit, with excess rows truncated. Calls to /mcp can be reported to Google Analytics 4 when both GA4 credentials are configured. Independently, request arguments are written as JSON lines to standard output by default, including search terms, entity URIs, and complete SPARQL queries. Set MCP_REQUEST_LOG=false to disable that request log.
The schema cache defaults to 24 hours, and the SPARQL row limit defaults to 1,000. These values can be changed through environment variables. The project uses GitHub Actions for testing and deployment to Heroku, but deployment is not required when running the application locally.