Drupal MCP by usefulapi
Server Details
Read and write Drupal JSON:API nodes, taxonomy terms, users and files.
- Status
- Healthy
- Uptime
- 59.1% over 27 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 7 tools
The CRUD verbs (create/get/list/update/delete) are clearly distinct, and each tool targets an explicit operation. The only mild overlap is between drupal_list_resources (with filter) and drupal_search_content (a convenience wrapper), plus drupal_list_resources vs drupal_list_resource_types, but descriptions make the boundaries readable.
Every tool follows the same drupal_verb_noun snake_case pattern (drupal_create_resource, drupal_list_resources, drupal_update_resource, etc.). The convention is applied uniformly across all seven tools with no deviations.
Seven tools is a well-scoped set that maps cleanly onto a JSON:API resource lifecycle. Each tool earns its place with no redundancy or bloat.
Full CRUD plus resource-type discovery and title search covers the core JSON:API workflow with no dead ends. Minor gaps exist (e.g. no batch/bulk operations or explicit relationship-management surface beyond the generic update body), but agents can work around these.
Available Tools
7 toolsdrupal_create_resourceCreate resourceADestructiveInspect
Create a new resource (content entity) for an entity_type/bundle. JSON:API: POST /jsonapi/{entity_type}/{bundle} → 201. Body is { data: { type: entity_type--bundle, attributes, relationships? } }.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle | Yes | The bundle machine name, e.g. "article", "tags", "user". | |
| attributes | Yes | Field values, e.g. { "title": "Hello", "body": { "value": "…", "format": "plain_text" } }. | |
| entity_type | Yes | The entity type machine name, e.g. "node", "taxonomy_term", "user". | |
| relationships | No | Optional relationships, e.g. { "field_tags": { "data": [{ "type": "taxonomy_term--tags", "id": "<uuid>" }] } }. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the write nature is covered. The description adds the wire-level behavior (POST endpoint, 201 response, request body shape), which is genuinely useful, but omits practical behavioral facts: authentication/CSRF requirements, permission implications, and side effects such as field validation or auto-generated UUIDs/aliases. No contradiction with destructiveHint=true.
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?
Extremely compact and front-loaded: the core action leads, followed by endpoint and body contract. Every clause carries information and nothing is padded or repeated from the schema.
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, and the description compensates by stating the success status (201). Combined with the full 100%-covered input schema including nested-object examples for attributes and relationships, an agent has enough to invoke the tool correctly.
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 baseline is 3, but the description goes further by mapping the parameters onto the JSON:API payload structure: 'type: entity_type--bundle, attributes, relationships?'. This clarifies how entity_type/bundle are recombined and where attributes/relationships sit, which is real added meaning beyond 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?
States a specific verb+resource ('Create a new resource (content entity)') and scopes it to an entity_type/bundle, plus gives the exact JSON:API endpoint ('POST /jsonapi/{entity_type}/{bundle} → 201'). The create semantics implicitly separate it from get/list/update/delete siblings, but no sibling is named for explicit differentiation.
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?
Usage is only implied by the verb 'create' and the POST endpoint mapping. There is no guidance on when to prefer this over drupal_update_resource, no prerequisite/auth context, and no exclusions. An agent can infer the intent but must guess at preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_delete_resourceDelete resourceADestructiveInspect
Delete a resource by UUID. JSON:API: DELETE /jsonapi/{entity_type}/{bundle}/{uuid} → 204 (empty body). Returns a small confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | The entity UUID (JSON:API uses the UUID, never the numeric id). | |
| bundle | Yes | The bundle machine name, e.g. "article", "tags", "user". | |
| entity_type | Yes | The entity type machine name, e.g. "node", "taxonomy_term", "user". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, and the description adds genuinely useful behavioral detail: the exact HTTP verb/path and the '204 (empty body)' outcome with a small confirmation. It stops short of noting irreversibility, cascading effects (e.g., deleting a taxonomy_term with children), or failure modes.
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 clauses: purpose, endpoint contract, and return expectation. Nothing is wasted and the key action is front-loaded in the first sentence.
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, and the description compensates by stating the response shape ('204 empty body, small confirmation'). For a destructive mutation the coverage is good; a note on permanence or permission requirements would make it 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 the three parameters are fully documented in the schema. The description reinforces that the UUID (not numeric id) is what JSON:API uses and shows the {entity_type}/{bundle}/{uuid} ordering, which is helpful but largely mirrors 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?
States a specific verb and resource ('Delete a resource by UUID') plus the exact JSON:API endpoint, so the operation is unambiguous against create/get/update/list siblings. It doesn't explicitly differentiate itself from siblings, but 'delete' is inherently distinct in the naming.
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?
Usage is implied by the verb — the agent knows deletion happens here — but there is no explicit when-to-use, when-not-to-use, or pointer to alternatives (e.g., drupal_update_resource vs delete). No prerequisites such as required permissions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_get_resourceGet resourceARead-onlyInspect
Get a single resource by UUID for an entity_type/bundle, with optional includes. JSON:API: GET /jsonapi/{entity_type}/{bundle}/{uuid}.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | The entity UUID (JSON:API uses the UUID, never the numeric id). | |
| bundle | Yes | The bundle machine name, e.g. "article", "tags", "user". | |
| include | No | Comma-separated relationship paths to include, e.g. uid,field_tags (→ query param include). | |
| entity_type | Yes | The entity type machine name, e.g. "node", "taxonomy_term", "user". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description reinforces this with the JSON:API GET mapping but adds nothing about failure modes (404 on unknown UUID, 403 permissions), include-related errors, or response shape — modest added value over the annotations.
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 scope, followed by the concrete HTTP endpoint for agents that reason about JSON:API. No filler or repetition.
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 read-only single-entity fetch with 100% schema coverage and no output schema, the description plus the JSON:API endpoint reference is nearly sufficient — an agent can infer standard JSON:API document output. Only error/empty-result behavior is left unspecified.
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 four parameters are already documented in-schema, including that 'include' is a comma-separated path list. The description only restates that includes are optional, adding no meaning beyond the schema — baseline 3 is 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?
States a specific verb and resource ('Get a single resource by UUID for an entity_type/bundle'), and the word 'single' cleanly separates it from the sibling drupal_list_resources / drupal_search_content. The appended JSON:API path pins down exactly what is being fetched.
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?
Usage is only implied: the UUID-based signature signals 'retrieve a known entity', which steers an agent away from list/search tools. However, no alternatives are named and there is no explicit when-to-use vs. drupal_list_resources or drupal_search_content guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_list_resourcesList resourcesARead-onlyInspect
List a collection of resources for an entity_type/bundle, with optional sorting, pagination, includes, and a single-field filter. JSON:API: GET /jsonapi/{entity_type}/{bundle}.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Field to sort by; prefix with - for descending, e.g. -created (→ query param sort). | |
| bundle | Yes | The bundle machine name, e.g. "article", "tags", "user". | |
| include | No | Comma-separated relationship paths to include, e.g. uid,field_tags (→ query param include). | |
| page_limit | No | Max records to return (→ query param page[limit]). | |
| entity_type | Yes | The entity type machine name, e.g. "node", "taxonomy_term", "user". | |
| page_offset | No | Records to skip (→ query param page[offset]). | |
| filter_field | No | Field path to filter on, e.g. title (used with filter_value; builds a verbose filter). | |
| filter_value | No | Value to match for filter_field. | |
| filter_operator | No | Filter operator, e.g. "=", "CONTAINS", ">", "STARTS_WITH". Default "=". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safety profile is covered. The description adds genuine behavioral context beyond that: the JSON:API endpoint it targets (GET /jsonapi/{entity_type}/{bundle}) and the real constraint that filtering is limited to a *single* field, which an agent could easily miss.
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, capability summary first and API mapping second, with no filler. Every clause carries information the agent can act on.
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 read-only list tool with full schema coverage and a readOnlyHint annotation, the description covers scope, capability set, and the underlying endpoint. Return shape and paging defaults are secondary for a tool whose safety profile is already declared and whose parameters are fully documented.
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 every one of the 9 parameters is already documented in the schema, including the query-param mappings and defaults. The description only restates the categories (sorting, pagination, includes, single-field filter) without adding syntax or format detail beyond 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?
States a specific verb (list) and resource (a collection of resources) scoped to an entity_type/bundle, and enumerates the supported capabilities. It implicitly separates itself from drupal_get_resource (single item) via 'collection', but never names the closest alternative, drupal_search_content, so the differentiation is left 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?
The description implies when this tool applies (listing a bundle's resources with sort/paging/filter), but gives no explicit when-to-use or when-not guidance and never routes the agent to drupal_search_content for cross-bundle or full-text lookups. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_list_resource_typesList resource typesARead-onlyInspect
List all available JSON:API resource types (entity_type/bundle pairs) with their hrefs, so the agent can discover what to query. JSON:API: GET /jsonapi.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safe-read profile, and the description adds the concrete discovery endpoint (GET /jsonapi) and the shape of what comes back (types with hrefs) — useful context beyond the annotation. No pagination or rate-limit notes, but there is little additional risk surface for a type index.
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 compact sentences, front-loaded with what the tool returns and followed by the reason to use it. Every clause earns its place with no redundancy.
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 no-argument discovery endpoint with no output schema, the description covers purpose, returned content, and the underlying endpoint. It does not describe the response structure in depth, but with no output schema and trivial complexity that omission is minor.
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 there is nothing for the description to disambiguate; per the baseline this lands at 4. No parameter syntax is needed or missing.
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 all available JSON:API resource types') and clarifies the returned unit as entity_type/bundle pairs with hrefs. The discovery framing ('so the agent can discover what to query') cleanly separates it from the sibling drupal_list_resources, which lists actual content rather than the type index.
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?
'So the agent can discover what to query' gives a clear context for when to reach for this tool: ahead of content queries. It stops short of naming explicit alternatives or when-not conditions, so it is clear context without full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_search_contentSearch contentARead-onlyInspect
Convenience node-title search: list nodes of a bundle whose title CONTAINS a query string. JSON:API: GET /jsonapi/node/{bundle} with a verbose CONTAINS filter on title.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Text to match against the node title (CONTAINS). | |
| bundle | Yes | The node bundle (content type) machine name, e.g. "article", "page". | |
| page_limit | No | Max records to return (→ query param page[limit]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safety profile, so the description's main added value is behavioral scope: matching is restricted to node titles via CONTAINS, not full-text search, and it maps to a JSON:API GET. It says nothing about authorization, result ordering, or how many results come back by default, leaving those to the schema and annotations.
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 tightly packed sentences with the purpose front-loaded and no filler. The trailing 'JSON:API: GET /jsonapi/node/{bundle} with a verbose CONTAINS filter on title' is implementation detail that slightly exceeds what an agent needs to invoke the tool, but it is compact and earns its place as scoping context.
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, the description does carry the burden of saying what comes back, and it does state at a high level that it returns nodes (of a bundle). Combined with full schema coverage and a read-only annotation, this is nearly enough, though it could say more about the returned node shape and default result count.
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 are already documented, including query as a CONTAINS match on title and bundle as the content-type machine name. The description restates the title-CONTAINS semantics rather than adding format or syntax detail beyond the schema, 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 and resource ('list nodes of a bundle whose title CONTAINS a query string'), which clearly separates it from generic listing or fetching by ID. The 'convenience node-title search' framing hints at its relationship to drupal_list_resources, but no sibling is named explicitly, so it stops short of full differentiation.
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 word 'convenience' and the title-only CONTAINS scope imply when this is useful, but there is no explicit 'use this instead of X' or a stated exclusion (e.g. that it does not search body text). Usage must be inferred from the mechanism described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drupal_update_resourceUpdate resourceADestructiveInspect
Update an existing resource by UUID (partial update of attributes and/or relationships). JSON:API: PATCH /jsonapi/{entity_type}/{bundle}/{uuid}. Body is { data: { type, id: uuid, attributes?, relationships? } }.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | The entity UUID (JSON:API uses the UUID, never the numeric id). | |
| bundle | Yes | The bundle machine name, e.g. "article", "tags", "user". | |
| attributes | No | Field values to change. | |
| entity_type | Yes | The entity type machine name, e.g. "node", "taxonomy_term", "user". | |
| relationships | No | Relationships to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply only destructiveHint=true, so the description carries most of the burden and does add real value: the PATCH endpoint, the exact request body shape, and the semantics that only supplied attributes/relationships change while others are left untouched. It still omits permission/revision or validation-failure behavior, which a mutation tool ideally discloses.
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: the operation first, then the endpoint, then the body contract. Nothing is wasted and the most decision-relevant information is front-loaded.
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 mutation tool with no output schema and minimal annotations, the description covers the endpoint and payload contract adequately. The remaining gap is failure-mode and permission behavior, which is minor given the body contract is fully spelled out.
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 baseline is 3, but the description adds meaning beyond the schema by showing how uuid/bundle/entity_type compose the URL and how attributes and relationships nest inside the { data: { type, id, attributes?, relationships? } } body.
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 (update), resource (existing resource identified by UUID), and scope (partial update of attributes and/or relationships). This naturally separates it from the create/delete/get/list siblings without opening their 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?
The partial-update qualifier implies when this is preferred over a full replace, and the UUID requirement implies the caller must already know the entity. However, it never names an alternative tool or states an explicit when-not condition, so routing guidance is only implied.
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
- Changed
drupal_create_resource1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_delete_resource1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_get_resource1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_list_resource_types1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_list_resources1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_search_content1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
drupal_update_resource1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
7 tool updates
- First observed
drupal_create_resource - First observed
drupal_delete_resource - First observed
drupal_get_resource - First observed
drupal_list_resource_types - First observed
drupal_list_resources - First observed
drupal_search_content - First observed
drupal_update_resource
Related MCP Connectors
Read and write DrChrono patients, appointments, offices and clinical notes.
Read and filter Beacon CRM records of any type; create, update, upsert, delete records; run exports.
Create and read Onfido applicants, documents, checks and reports.
Read and write Folk CRM people, companies, groups and notes.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Drupal sites via JSON:API, enabling CRUD operations on nodes, taxonomy terms, and users using natural language.8MIT
- AlicenseBqualityDmaintenanceEnables AI models to interact with Drupal 10+ sites via JSON:API for querying, searching, and retrieving content. It supports listing content types, searching by title across all types, and fetching detailed node information including relationships.4ISC
- AlicenseBqualityBmaintenanceEnables reading and managing WordPress sites via the WP REST API, including posts, pages, media, taxonomies, users, and arbitrary REST endpoints, with optional authenticated write operations.1714 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables read-only access to Drupal content through MCP tools for listing content types, retrieving content type schemas, fetching content, and searching content.-
Glama MCP Gateway
Add one secure layer between your agents and this server.