aisafety-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., "@aisafety-mcpfind remote AI safety jobs"
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.
aisafety-mcp
MCP server for the public AISafety.com directory API — eleven read-only tools over AI safety communities, orgs, events, jobs, funding, courses, and more.
About
Thin, stateless MCP server (stdio transport) wrapping the public read-only JSON API at https://aisafety.com/api/v1. No auth, no dependencies beyond the MCP SDK and fetch. Each tool takes free-text q, the API's documented per-collection filters, and uniform offset/limit pagination, and returns { count, offset, limit, hasMore, license, attribution, results } trimmed to sane sizes. The upstream API returns full collections, so paging is applied client-side after filters.
Built With
Model Context Protocol SDK (
@modelcontextprotocol/sdk)Zod (tool input schemas)
AISafety.com API (data source, CC-BY-4.0)
Related MCP server: TokenLab MCP Server
Getting Started
Prerequisites
Node.js 18+
An MCP client (Claude Desktop, Claude Code, etc.)
Installation
git clone https://github.com/aminamos/aisafety-mcp.git
cd aisafety-mcp
npm install
npm run buildPoint your MCP client at the built server. Claude Desktop (claude_desktop_config.json) / Claude Code (.mcp.json):
{
"mcpServers": {
"aisafety": {
"command": "node",
"args": ["/absolute/path/to/aisafety-mcp/dist/index.js"]
}
}
}No build step — run from source with tsx:
{
"mcpServers": {
"aisafety": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/aisafety-mcp/src/index.ts"]
}
}
}Usage
One tool per API collection. Common args: q (free-text search across all fields), offset (rows to skip, default 0), limit (page size 1–50, default 10). Filters are case-insensitive substrings; comma-separate for OR, combine fields for AND. count is total matches before paging; hasMore signals another page.
{ "tool": "search_events", "arguments": { "q": "conference", "mode": "online", "limit": 5 } }
{ "tool": "search_jobs", "arguments": { "organization": "Redwood", "workLocation": "remote" } }
{ "tool": "search_funding", "arguments": { "acceptingApplications": "yes" } }Tool | Collection | Filters |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Roadmap
One tool per collection with live filter passthrough
Output trimming (long strings, total size cap)
Client-side pagination (
offset+limit, page size capped at 50)Pin / surface upstream API version from OpenAPI spec
Contributing
PRs welcome. Keep it boring: stdio transport, stateless, no new runtime deps without a reason.
Fork the repo
Create your branch (
git checkout -b feature/thing)Commit (
git commit -m 'Add thing')Push (
git push origin feature/thing)Open a pull request
License
Server code: MIT — see LICENSE. API data: CC-BY-4.0 — credit AISafety.com when using the data.
Contact
Amin Amos — @aminamos
Project link: https://github.com/aminamos/aisafety-mcp
Acknowledgments
AISafety.com for the open CC-BY-4.0 directory API
Best-README-Template for the README structure
Available Tools
11 toolssearch_advisorsB
People offering AI safety career and research advice. Query https://aisafety.com/api/v1/advisors. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| focus | No | Filter by focus (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). | |
| status | No | Filter by status (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose two genuinely useful traits: the data source and the CC-BY-4.0 attribution obligation an agent should honor. It says nothing about read-only behavior, result ordering, pagination, or what a result record contains, which leaves meaningful gaps for a search tool.
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?
Very short and front-loaded with the resource definition, then the endpoint and attribution. The URL is mildly redundant given the endpoint is inherent to the tool, but nothing is bloated and it is easy to scan.
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 four-parameter, read-only search tool with full schema coverage and no output schema, the description is minimally adequate. It covers identity and licensing but omits usage context and result-shape hints that would help an agent decide between it and its ten siblings.
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 description coverage is 100%, so baseline is 3; the description adds no extra detail about q, focus, status, or limit beyond what the schema already documents. No enums exist, and the comma-separated OR syntax is already captured in the schema.
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 first sentence names the resource precisely — people offering AI safety career and research advice — which distinguishes it from siblings like search_jobs or search_courses. However, it is a bare noun phrase with no verb or scope statement, so the 'search' action is only implied by the name rather than stated in the description.
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?
There is no when-to-use, when-not-to-use, or alternative-tool guidance at all. The API URL is not a substitute for telling an agent when this tool is the right choice versus search_communities or search_founder_resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_communitiesC
AI safety communities, groups, and meetups. Query https://aisafety.com/api/v1/communities. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| size | No | Filter by size (case-insensitive substring; comma-separate for OR). | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| focus | No | Filter by focus (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). | |
| location | No | Filter by location (case-insensitive substring; comma-separate for OR). | |
| platform | No | Filter by platform (case-insensitive substring; comma-separate for OR). | |
| activityLevel | No | Filter by activityLevel (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does add genuinely useful non-obvious context — the upstream data source and the CC-BY-4.0 attribution requirement — but says nothing about result shape, pagination, or rate limiting. For a read/search tool the safety profile is self-evident, so the attribution detail earns partial credit.
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?
Three short, front-loaded fragments with no filler; the resource leads and ancillary licensing info trails. The endpoint URL and license note are arguably not needed for tool selection, but they cost little.
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 an eight-parameter tool with no output schema, the description documents the domain but not what a result looks like or how result volume is bounded beyond the schema's limit field. It is adequate for selection but thin on operational context.
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 description coverage is 100%, so all eight parameters (q, size, type, focus, limit, location, platform, activityLevel) are already documented with their matching semantics. The description adds no filter syntax or format detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.
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 names the resource domain (AI safety communities, groups, meetups) and points at a specific API endpoint, so the agent can infer this is a query over community data. However, it never states an explicit verb like 'search' or 'filter', and with ten sibling search_* tools it makes no attempt to distinguish itself beyond the resource noun. Purpose is inferable but under-specified.
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?
There is no guidance on when to use this tool versus siblings like search_organizations or search_events, and no mention of prerequisites or exclusions. The only implied usage is that the tool concerns communities, which the resource noun already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_coursesC
Self-study courses and learning materials. Query https://aisafety.com/api/v1/courses. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| limit | No | Max rows to return (1-50, default 10). | |
| category | No | Filter by category (case-insensitive substring; comma-separate for OR). | |
| organizer | No | Filter by organizer (case-insensitive substring; comma-separate for OR). | |
| courseType | No | Filter by courseType (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the behavioral load. It discloses the endpoint and a CC-BY-4.0 attribution requirement, but omits whether the search is read-only, authentication needs, rate limits, or pagination/return behavior.
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?
Two short sentences, front-loaded with the resource and followed by endpoint/attribution. No filler, though the first sentence is a fragment and the usage guidance remains minimal.
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 five-parameter search tool with no annotations and no output schema, the description lacks selection guidance among ten search_* siblings and omits return/auth details. The license note is useful but not enough to call the definition complete.
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 is 100%, so all five parameters are fully documented in the input schema. The description adds no syntax or filter semantics beyond the schema, which matches the baseline of 3 for high schema coverage.
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 names the resource domain ('self-study courses and learning materials') but does not state a search action or differentiate from sibling tools like search_training or search_events. An agent must rely on the tool name to infer the verb, so the purpose is clear but incomplete.
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?
No when-to-use, when-not, or alternative-tool guidance is provided. It mentions where to query and licensing, but not how this tool relates to the other search_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eventsB
Conferences, hackathons, meetups, and other AI safety events. Query https://aisafety.com/api/v1/events. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| cost | No | Filter by cost (case-insensitive substring; comma-separate for OR). | |
| host | No | Filter by host (case-insensitive substring; comma-separate for OR). | |
| mode | No | Filter by mode (case-insensitive substring; comma-separate for OR). | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). | |
| location | No | Filter by location (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It usefully discloses the upstream source (https://aisafety.com/api/v1/events) and a licensing/attribution constraint (CC-BY-4.0, credit AISafety.com), which is real behavioral context, but it says nothing about read-only semantics, result format, pagination behavior, or rate limits.
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?
Three short, front-loaded sentences with no redundancy. The raw API URL is arguably documentation noise rather than invocation-relevant content, but it is compact and the licensing note is genuinely actionable.
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 seven-parameter, no-annotation, no-output-schema search tool, the description covers the domain and data provenance but not the shape of results, the fields an event record contains, or the interaction between q and the filter parameters. It is adequate but leaves real gaps.
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 description coverage is 100%, so the seven parameters (q, cost, host, mode, type, limit, location) are already fully documented in the schema. The description implies the resource domain of the 'type' filter but adds no syntax, default, or format guidance beyond what the schema provides, so the baseline 3 applies.
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 names the resource and its scope ('Conferences, hackathons, meetups, and other AI safety events'), which lets an agent distinguish it from siblings like search_communities and search_jobs. It lacks an explicit verb, but the tool name and the domain nouns make the intent unambiguous.
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?
There is no when-to-use guidance, no mention of when to prefer this over search_communities, search_organizations, or the other search_* siblings, and no prerequisites or exclusions. The agent must infer selection purely from the resource noun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_founder_resourcesC
Resources for founders of AI safety projects. Query https://aisafety.com/api/v1/founder-resources. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the backing endpoint, data provenance, and CC-BY-4.0 licensing with an attribution request, which is context beyond the schema. However it says nothing about pagination behavior, the shape of results, or whether the data is read-only (implied but not stated).
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?
Three short sentences, front-loaded with the subject matter, with no filler. The endpoint URL is arguably redundant but the licensing sentence earns its place for attribution compliance.
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 three-parameter, no-annotation, no-output-schema search tool, the definition is minimally adequate: the schema covers inputs, but the description neither clarifies the return shape nor differentiates this from ten near-identical sibling search tools.
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 description coverage is 100%, so all three parameters (q, type, limit) are already fully documented in the schema. The description adds no syntax, default, or behavioral detail about them, so the baseline of 3 applies.
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 names the resource ('Resources for founders of AI safety projects'), which is enough to identify the subject matter, but it never uses a search verb or scope statement and offers no distinction from the ten sibling search_* tools. An agent must infer from the tool name alone that this is a search operation.
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?
There is no guidance on when to use this tool versus search_communities, search_projects, or the other siblings, and no mention of prerequisites or exclusions. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_fundingB
Funders and grant programs for AI safety work. Query https://aisafety.com/api/v1/funding. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). | |
| recipientType | No | Filter by recipientType (case-insensitive substring; comma-separate for OR). | |
| acceptingApplications | No | Filter by acceptingApplications (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses the data source, license, and an attribution obligation — genuinely useful behavioral context. However, it says nothing about whether the operation is read-only, result size limits, pagination, or return shape, leaving meaningful gaps for a no-annotation tool.
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?
Three compact sentences with the resource front-loaded; nothing is padded. The API URL is arguably low-value for an agent, but the licensing note is a legitimate operational detail.
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 five-parameter tool with no output schema and no annotations, the description covers the data source and licensing but omits what a result row contains, default behaviors, and any usage context. Combined with the fully documented schema it is adequate, but not complete.
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 description coverage is 100%, so the schema already documents all five filters (q, type, limit, recipientType, acceptingApplications). The description adds no syntax, format, or interaction detail beyond that, so the baseline of 3 applies.
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 names the specific resource ('Funders and grant programs for AI safety work'), which distinguishes it from siblings like search_events and search_jobs, though the search verb itself is only implied by the tool name. It is clear and specific about the domain, but does not explicitly contrast itself with any alternative.
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?
There is no when-to-use guidance, no mention of siblings or exclusion conditions, and no indication of when this tool is preferable to alternatives. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsC
Open roles in AI safety. Query https://aisafety.com/api/v1/jobs. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| limit | No | Max rows to return (1-50, default 10). | |
| location | No | Filter by location (case-insensitive substring; comma-separate for OR). | |
| roleType | No | Filter by roleType (case-insensitive substring; comma-separate for OR). | |
| organization | No | Filter by organization (case-insensitive substring; comma-separate for OR). | |
| workLocation | No | Filter by workLocation (case-insensitive substring; comma-separate for OR). | |
| minimumExperience | No | Filter by minimumExperience (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the data source and CC-BY-4.0 licensing/attribution expectation, which is genuinely useful, but says nothing about read-only semantics, pagination behavior, rate limits, or whether all fields are always populated.
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?
Very short and front-loaded: the resource comes first, followed by the endpoint and licensing note. The license boilerplate is compliance-relevant rather than selection-relevant, but each fragment is brief enough to be justified.
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?
With 0 required parameters and a fully documented schema, an agent can invoke this correctly without more guidance. The gap is return-value shape: there is no output schema and the description never hints at what fields a job record contains, so the agent cannot anticipate results.
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 description coverage is 100% and every filter (location, roleType, organization, workLocation, minimumExperience, q, limit) is documented in the schema with matching-case semantics. The description adds no parameter nuance beyond what the schema already provides, so the baseline of 3 applies.
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 states the resource precisely ("Open roles in AI safety") and the underlying API endpoint, so an agent knows this returns job postings. It does not, however, distinguish itself from the many sibling search_* tools beyond the resource name, which the tool name already conveys.
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?
There is no statement of when to use this tool, when not to, or which sibling to prefer for adjacent needs (e.g. search_organizations vs. search_jobs when seeking employer info). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_media_channelsC
Podcasts, newsletters, blogs, and video channels. Query https://aisafety.com/api/v1/media-channels. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and mostly fails it: nothing about auth, rate limits, pagination, or return shape. The only behavioral facts given are the data source URL and the CC-BY-4.0 attribution requirement, which is genuinely useful but far from sufficient for a search endpoint.
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?
It is short and front-loaded with the resource types, but two of three sentences are spent on the API URL and licensing rather than on helping the agent invoke the tool. The raw URL also risks being read as an instruction to call the endpoint directly.
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?
With no output schema and no annotations, the description must explain return format, result volume, and search semantics — none of which appear. The attribution/licensing note is a plus, but a three-parameter search tool across ten siblings needs more than a resource list to be callable with confidence.
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 is 100% and all three parameters (q, type, limit) are fully documented in the schema, including the 1-50 limit range and default of 10. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
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 enumerates the resource types (podcasts, newsletters, blogs, video channels) but never states the verb — that it searches or lists them. It relies on the tool name for the action, and it does not distinguish itself from any of its ten search_* siblings beyond the differing dataset.
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?
There is no guidance on when to use this tool versus search_organizations, search_events, or the other siblings, and no advice on how to drive the free-text query. The only quasi-usage note is a license/attribution request, which is not a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_organizationsB
Organizations on the AI safety landscape map. Query https://aisafety.com/api/v1/organizations. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| limit | No | Max rows to return (1-50, default 10). | |
| scale | No | Filter by scale (case-insensitive substring; comma-separate for OR). | |
| status | No | Filter by status (case-insensitive substring; comma-separate for OR). | |
| category | No | Filter by category (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does add genuinely useful context beyond structured fields — the upstream API endpoint, the data source, and the CC-BY-4.0 attribution obligation — but it says nothing about read-only semantics, pagination behavior, rate limits, or result format, which an agent needs for a network-backed search.
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?
Three short segments with no padding: resource identity first, then endpoint, then provenance. The attribution sentence earns its place as a compliance requirement rather than 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 search tool with five optional parameters and no output schema, the description covers provenance adequately but leaves the return shape, pagination (limit caps at 50), and result ordering unexplained. It is serviceable but not complete for an agent that must present or page results.
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 description coverage is 100% and each parameter (q, limit, scale, status, category) is documented in the schema itself. The description adds no parameter syntax, defaults, or filter-combination semantics beyond what the schema already provides, which is the baseline-3 case.
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 identifies the resource precisely (organizations on the AI safety landscape map), which cleanly distinguishes it from sibling searches for events, jobs, funding, etc. The verb 'search' is only implied by the tool name, but the domain is unmistakable and an agent can pick the right sibling without opening schemas.
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?
There is no statement of when to use this tool versus the other ten search_* siblings, and no prerequisites or exclusions. The licensing/attribution note is provenance information, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_projectsC
Volunteer and collaboration opportunities. Query https://aisafety.com/api/v1/projects. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| limit | No | Max rows to return (1-50, default 10). | |
| status | No | Filter by status (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add genuine behavioral context beyond the schema: the upstream endpoint, the data source AISafety.com, and a CC-BY-4.0 license with an attribution obligation. However, it says nothing about read-only nature, pagination behavior, rate limits, or result format, so the disclosure is partial.
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?
Three short sentences, content type front-loaded. The URL and licensing sentences are legal/provenance boilerplate rather than tool semantics, but they are required for compliant use, so they earn their place. 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 zero-required-parameter search tool with a fully documented schema and no output schema, the description covers what the resource is and where the data comes from. It is missing the routing information an agent needs to pick it over its ten siblings, which is the main completeness gap.
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 description coverage is 100%, so q, limit, and status are all fully documented in the schema itself. The description adds no additional syntax or format detail for any parameter, making the baseline 3 correct.
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 gives a content type ('Volunteer and collaboration opportunities') but never states the action — the verb is carried entirely by the name 'search_projects'. It does not distinguish this resource from any of the ten sibling search_* tools, which each target a different content type. The purpose is inferable but vague.
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?
There is no when-to-use guidance, no exclusions, and no mention of alternatives, despite ten sibling search tools covering adjacent domains (communities, organizations, jobs, etc.). The agent is left to guess when a 'project' is the right resource versus a community or organization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_trainingC
Fellowships, courses, and bootcamps in AI safety. Query https://aisafety.com/api/v1/training. Data: AISafety.com, licensed CC-BY-4.0 — please credit AISafety.com when using this data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across all fields. | |
| mode | No | Filter by mode (case-insensitive substring; comma-separate for OR). | |
| type | No | Filter by type (case-insensitive substring; comma-separate for OR). | |
| focus | No | Filter by focus (case-insensitive substring; comma-separate for OR). | |
| limit | No | Max rows to return (1-50, default 10). | |
| stipend | No | Filter by stipend (case-insensitive substring; comma-separate for OR). | |
| entryBar | No | Filter by entryBar (case-insensitive substring; comma-separate for OR). | |
| location | No | Filter by location (case-insensitive substring; comma-separate for OR). | |
| recurring | No | Filter by recurring (case-insensitive substring; comma-separate for OR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses data provenance and a CC-BY-4.0 attribution obligation, which is genuinely useful, but says nothing about result shape, sorting, pagination behavior, or that this is a side-effect-free read (only implied by 'search'). Most of the behavioral surface is unaddressed.
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?
Three short fragments with no filler; the scope statement is front-loaded. The API URL and license/credit clause are housekeeping rather than selection-relevant, but they are brief and non-disruptive.
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 nine-parameter, zero-required search tool with no output schema, the description covers the corpus and data source but never sketches the returned fields or the relationship between free-text q and the facet filters. Adequate, with clear gaps an agent would have to discover by calling.
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 description coverage is 100% and every one of the nine filters is documented in-schema (including the comma-separated OR semantics and the limit defaults). The description adds nothing about parameters, so the baseline of 3 applies.
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?
States the resource precisely: 'Fellowships, courses, and bootcamps in AI safety.' An agent knows exactly what corpus is queried. It stops short of distinguishing this from the sibling search_courses, whose scope visibly overlaps with 'courses', so it does not earn a 5.
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?
No when-to-use guidance, no prerequisites, and no mention of alternatives despite ten sibling search_* tools. The agent must infer from the noun phrase alone whether this or search_courses is the right target.
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.
11 tool updates
v1.0.0- First observed
search_advisors - First observed
search_communities - First observed
search_courses - First observed
search_events - First observed
search_founder_resources - First observed
search_funding - First observed
search_jobs - First observed
search_media_channels - First observed
search_organizations - First observed
search_projects - First observed
search_training
TDQS
Scored across 11 tools
Each tool targets a distinct resource category (jobs, events, funding, etc.), so most are clearly separable. However, a few boundaries blur: search_training (fellowships/courses) overlaps with search_courses (self-study courses), and search_communities (meetups) overlaps with search_events (meetups), which could cause misselection.
All 11 tools follow a uniform search_<noun> snake_case pattern, including multi-word variants like search_founder_resources and search_media_channels. The naming is fully predictable and readable.
11 tools is well within the ideal 3-15 range and maps naturally to the distinct resource categories offered by the aisafety.com API. Each tool earns its place with a clear one-to-one endpoint correspondence.
The set covers all major directory categories (resources, communities, organizations, events, training, jobs, funding, courses, advisors, media, projects), providing broad search coverage. It lacks detail-retrieval tools (e.g., get by ID) and any pagination/filtering affordances, but these are minor gaps for a search-oriented directory.
Maintenance
Related MCP Connectors
Search MCP servers, MCP clients and AI agents, and retrieve listing details. Free, read-only access.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceRead-only MCP server that answers questions about turva.dev from its published data. Five tools return JSON: the service catalog with prices, contact and operator details, engagement principles and dated agent-readiness and security evidence with verification links. Connect over Streamable HTTP. You need no API key. The server does not scan other websites or run audits.MIT
- AlicenseCqualityAmaintenanceRead-only MCP server that exposes public TokenLab model catalog tools for agents to discover models, inspect request contracts, and compare pricing.32766 npmMIT
- AlicenseAqualityCmaintenanceA read-only MCP server for discovering engineering work and reusable assets on Archimedes Market. It enables searching and retrieving public assets and bounties through natural language.4MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that provides read-only access to cached metadata of public activities, contests, and competitions from multiple sources via SQLite, enabling search and listing without hitting external sites.1-