CuratorSearch
Live museum and curatorial job listings from institutions' own careers pages, plus a salary archive.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"jobs": {
"url": "https://curatorsearch.com/mcp"
}
}
}远程端点
https://curatorsearch.com/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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."
}
}
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The listing's slug, or the whole curatorsearch.com/opportunities/<slug> URL -- either is accepted."
}
},
"required": [
"slug"
]
}输出模式
{
"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.
输入模式
{
"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"
]
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"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."
}
}
}社区
证据