Curator

Curator

Enables natural language search and exploration of over 1.15 million museum records from Museums Victoria, including specimens, items, articles, and species, with full-text search and detailed record retrieval.

Category
Visit Server

README

Curator — Museums Victoria Collections MCP Server

An MCP server that turns the Museums Victoria Collections API (1.15M+ records) into natural-language discovery tools for MCP clients such as Copilot Studio.

Python License

Overview

Curator is a Model Context Protocol server exposing the Museums Victoria Collections API as a set of tools. It lets an AI agent search and explore specimens, items, articles, and species across the museum's Natural Sciences and Humanities collections — with taxonomy, images, provenance, and dates.

It runs as a streamable-HTTP MCP service (built with FastMCP) and is served over HTTPS on Azure Container Apps.

Tools

Tool Purpose
search_collections Full-text search with type/image/category filters
get_specimen / get_item / get_article Fetch a single record by ID
list_specimens / list_items / list_articles / list_species Paginated browse

Architecture

flowchart LR
    Dev([Developer]) -->|git push main| GH[GitHub Actions]

    subgraph Azure["Azure · rg-curator"]
        direction LR
        ACR[("Container Registry<br/><i>ABAC mode</i>")]
        APP["Container App<br/>HTTPS &middot; always-warm"]
        ACR -->|"pull via<br/>managed identity"| APP
    end

    GH -->|"build &amp; push<br/>(SP AAD token)"| ACR
    APP -->|"serves /mcp"| CS["Copilot Studio<br/>agent"]

    TF[/"Terraform<br/>infra as code"/] -. provisions .-> Azure

Flow: a push to main triggers GitHub Actions, which builds the image and pushes it to the registry; the Container App pulls that image via a managed identity and serves the MCP endpoint over HTTPS, which the Copilot Studio agent calls. Terraform declares the same Azure resources.

  • Server: curator_mcp_server.py — FastMCP streamable-HTTP app, MCP endpoint at /mcp on port 8000.
  • CI/CD: .github/workflows/deploy-azure.yml — builds the image, pushes to ACR with the workflow service principal's AAD token, and deploys to Container Apps. No registry passwords in the pipeline.
  • Auth: the container app pulls images via a user-assigned managed identity; the ACR admin user is disabled. Because the registry runs in ABAC mode, the ABAC-native Container Registry Repository Reader/Writer roles are used (not the classic AcrPull/AcrPush).
  • IaC: infra/terraform/ — the whole Azure stack as Terraform (see its README).

Local development

python -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# Run the MCP server on http://localhost:8000/mcp
python curator_mcp_server.py

Or with Docker:

docker compose up --build   # serves on http://localhost:8000/mcp

Deployment

Deployment is automated: pushing to main runs the GitHub Actions workflow, which builds the image and rolls the Container App to the new build. The workflow needs one repository secret, AZURE_CREDENTIALS (a service principal with Contributor on the resource group).

To provision the underlying infrastructure declaratively, use the Terraform in infra/terraform/.

Data source & acknowledgement

This project is built on the Museums Victoria Collections API (https://collections.museumsvictoria.com.au/api) and would not exist without it. All collection data — specimens, items, articles, and species — is provided by Museums Victoria. Huge thanks to Museums Victoria for making this data openly available.

Please note when using the data:

  • Licensing is per-record. Individual records carry their own licence (commonly CC BY 4.0, Public Domain Mark, or CC0) — check each record's licence and rightsStatement fields and attribute accordingly.
  • A User-Agent header is required on every API request; this server sends one.
  • Some records contain culturally sensitive content. Handle Aboriginal and Torres Strait Islander cultural material with appropriate respect.

This project is not affiliated with or endorsed by Museums Victoria.

License

MIT — see the note above; the museum data is licensed per-record by Museums Victoria and is not covered by this repository's licence.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured