CuratorSearch
Live museum and curatorial job listings from institutions' own careers pages, plus a salary archive.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"jobs": {
"url": "https://curatorsearch.com/mcp"
}
}
}Puntos de conexión remotos
https://curatorsearch.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢search_jobs(query, category, region, limit)
Search live museum, gallery and curatorial job listings, gathered daily from institutions' own career pages. Returns up to 20 roles, newest first, each with its curatorsearch.com page.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free text matched against title, institution and location, e.g. 'registrar London'. Omit to browse everything."
},
"category": {
"type": "string",
"enum": [
"Leadership",
"Curatorial",
"Education & Public Programmes",
"Archives",
"Collections",
"Conservation",
"Intern & Fellowship",
"Open Call & Residency",
"Production",
"Other"
],
"description": "Restrict to one field of work."
},
"region": {
"type": "string",
"enum": [
"North America",
"UK & Ireland",
"Europe",
"Asia-Pacific",
"Middle East",
"Latin America",
"Africa",
"International"
],
"description": "Restrict to one world region."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "How many roles to return, 1 to 20. Defaults to 10."
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "How many live roles match, which may exceed the number returned."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Job title as advertised."
},
"institution": {
"type": "string",
"description": "Museum, gallery or organisation advertising the role."
},
"location": {
"type": [
"string",
"null"
],
"description": "City and country as stated, or null if the posting gives none."
},
"category": {
"type": "string",
"description": "CuratorSearch field, one of the category values."
},
"region": {
"type": "string",
"description": "CuratorSearch world region."
},
"salary": {
"type": [
"string",
"null"
],
"description": "Pay exactly as the posting states it, or null -- most postings state none."
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline as an ISO date, or null if none is given."
},
"posted": {
"type": "string",
"description": "ISO date the role was first seen on the board."
},
"url": {
"type": "string",
"description": "The role's permanent page on curatorsearch.com."
}
},
"required": [
"title",
"institution",
"category",
"region",
"posted",
"url"
]
},
"description": "The matching roles, newest first."
},
"attribution": {
"type": "string",
"description": "Source credit to quote when citing these results."
}
},
"required": [
"total",
"results"
]
}🟢get_job(slug)
One listing in full: description, stated salary, deadline, and the institution's original posting URL. Takes the slug from a curatorsearch.com/opportunities/<slug> URL.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The listing's slug, or the whole curatorsearch.com/opportunities/<slug> URL -- either is accepted."
}
},
"required": [
"slug"
]
}Esquema de salida
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Job title as advertised."
},
"institution": {
"type": "string",
"description": "Museum, gallery or organisation advertising the role."
},
"location": {
"type": [
"string",
"null"
],
"description": "City and country as stated, or null if the posting gives none."
},
"category": {
"type": "string",
"description": "CuratorSearch field, one of the category values."
},
"region": {
"type": "string",
"description": "CuratorSearch world region."
},
"salary": {
"type": [
"string",
"null"
],
"description": "Pay exactly as the posting states it, or null -- most postings state none."
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline as an ISO date, or null if none is given."
},
"posted": {
"type": "string",
"description": "ISO date the role was first seen on the board."
},
"url": {
"type": "string",
"description": "The role's permanent page on curatorsearch.com."
},
"status": {
"type": "string",
"description": "'live' while the role is open; anything else means the institution has taken it down."
},
"description": {
"type": [
"string",
"null"
],
"description": "The posting's own text, or null if the source gave none."
},
"source": {
"type": "string",
"description": "The institution's original posting, where applications are made."
}
},
"required": [
"title",
"institution",
"category",
"region",
"posted",
"url",
"status",
"source"
]
}🟢institution_jobs(institution)
Every role one museum or gallery currently has open on the board, by institution name.
Esquema de entrada
{
"type": "object",
"properties": {
"institution": {
"type": "string",
"description": "The institution's name, e.g. 'Philadelphia Museum of Art'. Near-misses resolve; if nothing matches, the reply says so."
}
},
"required": [
"institution"
]
}Esquema de salida
{
"type": "object",
"properties": {
"institution": {
"type": "string",
"description": "The institution as the board names it."
},
"page": {
"type": "string",
"description": "That institution's page on curatorsearch.com."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Job title as advertised."
},
"institution": {
"type": "string",
"description": "Museum, gallery or organisation advertising the role."
},
"location": {
"type": [
"string",
"null"
],
"description": "City and country as stated, or null if the posting gives none."
},
"category": {
"type": "string",
"description": "CuratorSearch field, one of the category values."
},
"region": {
"type": "string",
"description": "CuratorSearch world region."
},
"salary": {
"type": [
"string",
"null"
],
"description": "Pay exactly as the posting states it, or null -- most postings state none."
},
"deadline": {
"type": [
"string",
"null"
],
"description": "Application deadline as an ISO date, or null if none is given."
},
"posted": {
"type": "string",
"description": "ISO date the role was first seen on the board."
},
"url": {
"type": "string",
"description": "The role's permanent page on curatorsearch.com."
}
},
"required": [
"title",
"institution",
"category",
"region",
"posted",
"url"
]
},
"description": "Its open roles, newest first."
},
"note": {
"type": "string",
"description": "Present only when no institution of that name is on the board."
}
},
"required": [
"institution",
"results"
]
}🟢salary_transparency
How many live museum and curatorial postings state a salary, and the median advertised figure among those that do -- the CuratorSearch Curatorial Pay Archive headline number, computed live.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"liveListings": {
"type": "integer",
"description": "Live roles on the board at the moment of the call."
},
"percentStatingSalary": {
"type": "number",
"description": "Percentage of those postings that state any pay at all."
},
"medianAdvertisedEurPerYear": {
"type": "integer",
"description": "Median stated figure among those that do, annualised into euro."
},
"asOf": {
"type": "string",
"description": "ISO date the figures were computed."
},
"citation": {
"type": "string",
"description": "How to cite these figures."
},
"note": {
"type": "string",
"description": "Present only when there is no salary data yet."
}
}
}Comunidad
Evidencia