perps.ai Projects
Server Details
Search perpetuals ecosystem projects, retrieve project details, and list categories.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: fetching one project by slug, listing categories, and searching the directory. There is no meaningful overlap between retrieval, enumeration, and search operations.
All three names follow a consistent snake_case verb_noun pattern (get_project, list_project_categories, search_projects). The convention is predictable and readable.
Three tools is on the thin side, but appropriate for a read-only published-project directory. Each tool earns its place with no redundant surface.
The read-only browsing lifecycle (fetch by slug, browse categories, search/browse all) is well covered. Minor gaps like pagination or a fetch-by-id/tag listing are workable around given search covers names, descriptions, and tags.
Available Tools
3 toolsget_projectARead-onlyIdempotentInspect
Retrieve a published project by its exact slug, including its description and public links.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real scope information: only *published* projects are retrievable and the payload includes description and public links. It omits behavior for a nonexistent or unpublished slug, which is the remaining gap.
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?
A single front-loaded sentence with no filler: the action, the identifier requirement, and the returned fields each carry weight. Nothing is padded or repeated.
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 single-parameter read tool with no output schema, the description covers the operation, the input constraint, and the returned content, while annotations carry the safety profile. Only the miss case (slug not found or unpublished) is undocumented.
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 0% and the only parameter's schema is just a pattern and length bound. The description contributes that the slug match is exact, which is genuinely useful over the raw regex, but adds no format examples, casing rules, or failure semantics for a mismatched slug.
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?
Specific verb (Retrieve) plus resource (published project) and the key constraint (exact slug), which implicitly separates it from search_projects' fuzzy lookup. It never names the siblings outright, so an agent must infer the routing rather than being told it.
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?
"By its exact slug" implies this is the tool for when you already know the identifier, whereas search_projects would be for discovery, but that condition is left to inference. No explicit when-to-use, when-not-to-use, or named alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_categoriesARead-onlyIdempotentInspect
List categories and their published project counts. Use the exact category value with search_projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral fact — the counts are scoped to *published* projects — but says nothing about result size, ordering, or how categories are sourced.
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, no filler, with the core purpose front-loaded and the downstream instruction second. Every clause carries information.
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-parameter enum-style lookup with full annotation coverage, the description covers what it returns (categories plus published counts) and how to consume it. There is no output schema, but the return shape is described adequately; only ordering/pagination behavior is left unstated.
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?
The tool takes zero parameters, so the baseline is 4 and there is no syntax or format for the description to clarify. The note that the returned category value must be passed verbatim to search_projects is a genuine usage constraint on the output, even though there are no inputs to document.
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 a specific verb and resource ('List categories') plus the payload detail ('their published project counts'), which sets it apart from get_project and search_projects, which deal in projects. It stops short of an explicit contrast statement, but the resource distinction is enough for an agent to differentiate it.
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?
The second sentence names the sibling tool (search_projects) and states the handoff condition: pass the exact category value onward. That makes the call sequence clear, though it never states when not to call this tool or whether results are cached/static.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_projectsARead-onlyIdempotentInspect
Search published perps.ai projects by name, description or tag. An empty query browses the directory. Results are ordered by name and slug.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| offset | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds non-obvious behavioral context: the empty-query browse mode and the result ordering ('ordered by name and slug'), which an agent cannot get from annotations alone. It omits pagination behavior and any rate/auth notes.
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 tight sentences, front-loaded with the core action and followed by scope and ordering details. Every clause carries information and there is 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 simple search tool with no output schema, the description covers what is searched and how results are ordered, which is a reasonable minimum. It is incomplete on pagination semantics (limit/offset) and the unexplained category filter, which are the main gaps an agent would hit when invoking it.
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 0% across 4 parameters, so the description must compensate. It only clarifies the 'query' parameter (searchable fields, empty-string semantics); 'category', 'limit', and 'offset' are left entirely undocumented in both places — notably the category filter is a distinct capability an agent would not infer.
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 a specific verb and resource — 'Search published perps.ai projects' — and scopes the searchable fields (name, description, tag). This is clearly distinguishable from get_project and list_project_categories, though the description never names an alternative tool.
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?
'An empty query browses the directory' is a genuine usage hint that tells the agent how to enumerate everything. However, there is no guidance on when to prefer this over get_project or list_project_categories, and no stated exclusions or prerequisites.
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.
3 tool updates
- First observed
get_project - First observed
list_project_categories - First observed
search_projects
Related MCP Connectors
Search Canton Network ecosystem projects, retrieve project details, and list categories.
31Search prediction market projects, retrieve project details, and list categories.
31Search Robinhood Chain ecosystem projects, retrieve project details, and list categories.
31Search Tempo ecosystem projects, retrieve project details, and list categories.
31
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides a shared project knowledge and handoff layer for coding agents, offering tools to list, search, retrieve, and update stages of project information to maintain continuity across long-running projects17MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching over 5,400 Solana hackathon projects and 84,000 crypto archive documents to validate startup ideas and research the crypto ecosystem. It provides tools for cohort analysis, project deep-dives, and access to historical cypherpunk literature and protocol documentation.MIT
- AlicenseNot gradedqualityBmaintenanceProvides authenticated access to Ershu projects, enabling discovery, document and source navigation, indexed search, and consumer contract reads for coding agents and maintainers.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables discovery and search across an extensive ecosystem of crypto, blockchain, DeFi, and MCP tools, including queries for popular and Sperax MCP servers.24 npm26-
Glama MCP Gateway
Add one secure layer between your agents and this server.