ReqRes
Server Details
Hosted backend for AI agents: create projects with persistent collections and keys, no signup.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool maps to a distinct resource+action pair (project, collection, record). The two 'create' container tools (create_project vs create_collection) could superficially overlap, but the descriptions clearly frame project as the backend and collection as a table, so selection is unambiguous.
All seven tools follow a clean verb_noun snake_case pattern (create_project, create_collection, list_records, update_record, delete_record, etc.). No convention mixing or ambiguity in the names themselves.
Seven tools is well-scoped for a backend-as-a-service CRUD surface. Each tool earns its place, and there is no redundancy or filler.
Records have full lifecycle coverage (create/list/update/delete), which is the primary use case. However, collections lack update/delete and projects lack get/delete, so those container lifecycles are incomplete though secondary.
Available Tools
7 toolscreate_collectionCreate a collectionAInspect
Create a collection: a new resource (like a table) with its own REST endpoint at /api/collections/{slug}/records. Use one per kind of thing the app stores (tasks, users, orders). Free projects allow 3.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name, e.g. "Tasks"; the slug is derived from it | |
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses a hard quota ('Free projects allow 3') and the endpoint shape the new resource will expose, but says nothing about post-creation state, whether collections can be deleted/renamed, or rate limits. The auth nuance lives only in the schema, not the description.
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 tight sentences, front-loaded with the core action, then the resource definition, then the quota constraint. No filler and nothing redundant.
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 two-parameter create tool with no output schema, the definition covers purpose, granularity guidance, the resulting endpoint, and quota limits. Missing only lifecycle details (what happens to the collection afterward, deletion behavior) and an explicit pointer to the sibling create_project that mints the required manage key.
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 both parameters (name, api_key) are already well documented in the schema, including slug derivation and the manage-vs-public key distinction. The description adds the endpoint path containing {slug} but does not itself explain parameter formats, so 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?
States a specific verb+resource ('Create a collection') and goes further by defining what a collection is (a table-like resource exposed at /api/collections/{slug}/records). It implicitly separates collections from records/projects via the 'one per kind of thing' framing, but never names a sibling tool to contrast with, so it stops short of 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?
Gives concrete guidance on when to create one ('one per kind of thing the app stores (tasks, users, orders)'), which tells the agent the right granularity and implicitly warns against duplicating collections. No explicit alternatives (create_project, create_record) or when-not-to-create exclusion is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate a ReqRes projectAInspect
Create a real hosted backend (a REST API with a persistent database) in one call, with no account or API key. Use it when the user needs to store data, persist an app or prototype, or give a frontend a live API. Returns a manage key, a read-only public key, a starter "products" collection, the base URL and a claim_url. Show the user the claim_url: signing in through it keeps the project; otherwise it is deleted after 72 hours. Free limits: 250 requests a day, 3 collections, 100 records.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: no account or API key required, the exact return artifacts (manage key, read-only public key, starter products collection, base URL, claim_url), the consequence of not claiming (deletion after 72 hours), and concrete free-tier limits (250 requests/day, 3 collections, 100 records). This is unusually complete behavioral disclosure for a mutation 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?
Front-loaded with the purpose, and every sentence carries distinct information (capability, when-to-use, returns, claim instruction, limits). It is dense rather than padded, though the returns enumeration adds bulk that could be tightened slightly.
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?
No output schema exists, yet the description enumerates the returned artifacts and the critical follow-up action (show the claim_url), plus quotas. An agent has everything needed to call it and to advise the user afterwards.
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; the description correctly implies a no-argument call by describing everything as created automatically. There is no parameter syntax to add.
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?
Names a specific verb and resource ('Create a real hosted backend ... in one call') and clarifies the resource is a REST API with a persistent database. This cleanly separates it from siblings like create_collection and create_record, which operate inside an already-existing project.
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?
Explicitly states when to use it ('when the user needs to store data, persist an app or prototype, or give a frontend a live API'). It does not name when-not to use it or explicitly route the agent to siblings, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recordCreate a recordBInspect
Save a record (a JSON object) in a collection so it persists. Pass the fields as data; the API returns it with an id.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Record fields, e.g. {"title": "Write tests", "done": false} | |
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. | |
| collection | Yes | Collection slug, e.g. "products" |
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 one useful non-schema fact: the API returns the saved object with an id. However, it is silent on permission requirements (the schema alone notes pub_ keys are read-only), duplicate handling, and error behavior for a mutation.
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 with the core action first and the return-value note second; nothing is wasted and the terminology ('record', 'collection', 'data') matches the schema keys.
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 3-parameter create tool with full schema coverage and no output schema, the description covers purpose, payload, and return value, which is close to sufficient. It leaves auth/permission and duplicate-handling gaps, but those are modest given the schema's api_key documentation.
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 api_key, collection, and data are already documented in the schema. 'Pass the fields as data' merely restates the data parameter without adding format or constraint detail beyond what the schema provides; 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 uses a specific verb and resource ('Save a record ... in a collection') and clarifies the payload shape ('a JSON object'), so an agent can distinguish it from list_records or update_record. It falls short of 5 because it never names the sibling tools it differs from.
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 create_collection, create_project, or update_record, nor any prerequisite or deduplication guidance. 'So it persists' hints at intent but gives no routing condition between the create-family siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordDelete a recordCInspect
Delete a record from a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. | |
| record_id | Yes | ||
| collection | Yes | Collection slug, e.g. "products" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only restates that this is a delete. It does not say whether deletion is permanent/irreversible, whether it errors when the record is missing, whether it requires a management key with write scope, or what happens to related data.
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 a single economical sentence with no filler, which is the right shape for a simple tool, but at this length it is under-specified rather than genuinely concise — the brevity comes at the cost of any actionable 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 destructive, irreversible mutation with no annotations, no output schema, and one undocumented parameter, the definition is materially incomplete. An agent cannot tell the blast radius, permission requirements, or failure behavior before 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?
The description adds no parameter meaning whatsoever. record_id has no schema description (the 33% gap), and the significance of passing a manage key (pro_) versus a read-only public key is not reinforced for this destructive operation, so the description fails to compensate for the coverage gap.
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 a specific verb and resource (delete a record) with the containing scope (from a collection), so an agent knows exactly what operation this is. It does not, however, differentiate itself from the sibling mutation tools update_record or create_record beyond the obvious verb, leaving routing to inference.
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 update_record (which might also remove fields) or how it relates to list_records for locating a record_id. No prerequisites or exclusions are mentioned at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsList collectionsCInspect
List the collections in the project.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'List' implies a read operation, but the description does not disclose auth requirements beyond the schema, pagination behavior, return format, or any other operational traits.
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?
The description is one short, front-loaded sentence with no redundant words. For a simple list operation, this is appropriately sized and structured.
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 annotations and no output schema, the description should compensate more. It does not explain the return shape (e.g., array of collections), pagination, or any behavioral context, leaving the agent with only the basic action and the parameter documented in the schema.
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 the schema fully documents the single api_key parameter, including the distinction between project manage keys and read-only public keys. The description adds no parameter meaning beyond the schema, 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 a specific verb ('List') and resource ('collections') scoped to 'the project.' It is clear enough to distinguish from create_collection and list_records by resource name, but it does not explicitly differentiate itself from those siblings or clarify what a 'collection' contains.
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 description provides no guidance on when to use this tool versus alternatives like list_records or create_collection. It only implies usage by stating what it lists, with no prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recordsList recordsBInspect
Read the records stored in a collection (paginated).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. | |
| collection | Yes | Collection slug, e.g. "products" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose one real trait beyond the schema by flagging pagination (the page parameter has no description of its own), but it omits ordering, default page size, how to traverse pages, and any rate-limit or permission context beyond what the api_key schema text says.
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. It is efficient, though its brevity contributes to the coverage gaps rather than resolving them.
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 tool with no annotations, no output schema, and three parameters (one undocumented), a one-line description is not sufficient. An agent lacks return shape, pagination mechanics, and any indication of what constitutes an empty or failed listing.
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 67%: api_key and collection are documented in the schema, while page is not. The description's '(paginated)' hint points at the page parameter but adds no meaning about page numbering, size, or bounds, so the uncovered parameter remains semantically thin.
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 clear verb+resource (read records stored in a collection) and adds the paginated nature of the operation. It is understandable on its own, but it does not differentiate itself from siblings like list_collections or explain why one would list records here rather than fetch a collection's contents elsewhere.
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 prerequisites, and no mention of alternatives such as list_collections. The only usage signal is the implied read-vs-write distinction from the tool name, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recordUpdate a recordCInspect
Replace a record's fields.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | Yes | Project manage key (pro_...) returned by create_project. Public keys (pub_...) are read-only. | |
| record_id | Yes | ||
| collection | Yes | Collection slug, e.g. "products" |
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 of behavioral disclosure and largely drops it. It does not say whether unmentioned fields are discarded, whether the call is idempotent, what permissions are required, or what happens if the record_id does not exist. The word "replace" hints at destructive overwrite semantics but the extent of that destruction is left unstated.
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 short sentence with no wasted words, which is structurally clean. But it is under-specified rather than genuinely concise, so it earns no more than a middling score.
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?
A four-parameter, all-required mutation tool with a nested object, no annotations, and no output schema needs far more than one sentence. Nothing about required inputs, merge semantics, or error behavior is covered, leaving an agent unable to call this safely without trial and error.
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 only 50%: api_key and collection are documented in the schema, but record_id and the nested data object carry no description at all. The description's "record's fields" loosely maps to data, but gives no hint about how keys in data are matched to record fields or how nested values are handled, so it fails to compensate for the coverage gap.
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 verb+resource ("Replace a record's fields") is specific enough to distinguish this from create_record, delete_record, and list_records without reading the schema. However, it is ambiguous about whether "replace" means a full overwrite or a partial merge, and it never differentiates itself explicitly from any sibling.
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 prerequisites, and no mention of alternatives or when not to use it. The agent must infer from the name alone that this is the mutation path for an existing record.
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.
7 tool updates
- First observed
create_collection - First observed
create_project - First observed
create_record - First observed
delete_record - First observed
list_collections - First observed
list_records - First observed
update_record
Related MCP Connectors
Persistent memory and vector search for AI agents. Hosted, OAuth-protected via Google sign-in.
Hosted persistent memory with semantic search, importance and TTL for AI agents.
- ScribaseOAuthcom.scribase
Supabase-compatible Postgres for agents: projects, branches, SQL, auth, storage, email.
Persistent cloud memory for AI agents. Store and search key-value memories across sessions.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenancePersistent memory and identity infrastructure for AI agents. Cross-session wake protocol, drift detection, immutable snapshots, and shared memory spaces — free hosted API10MIT
- AlicenseNot gradedqualityAmaintenanceSelf-hosted memory service that gives AI agents persistent, searchable memory across sessions, machines, and projects.1MIT
- AlicenseNot gradedqualityNot gradedmaintenanceA lightning-fast, self-hosted knowledge store and memory layer for AI agents-
- AlicenseNot gradedqualityAmaintenancePersistent memory layer for AI agents with entity resolution, PII detection, AES-256-GCM encryption at rest, and hybrid search. Self-hosted. 100% on LoCoMo benchmark.219 PyPI16MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.