OnePlatform MCP Server
This MCP server gives code agents OnePlatform documentation and, when keys/toolsets are configured, OnePlatform API access.
Search OnePlatform developer documentation and return relevant page URLs in Markdown (
docs_search).Retrieve a documentation page by path or URL in Markdown (
docs_get_page).Fetch exact API operation contracts by
operationId, including method, path, parameters, body, responses, and errors (api_get_operation).With app/user keys, the README says it can expose API toolsets such as account, payments, withdrawals, subscriptions, terminals, billing, shipments, sites, analytics, email, domains, telemetry, sales, and agents.
Some toolsets are read-only, writes require client confirmation, and toolsets can be limited via
ONEPLATFORM_TOOLSETSorX-OnePlatform-Toolsets.The provided schema itself only lists the three keyless documentation tools.
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., "@OnePlatform MCP Serversearch the OnePlatform docs for how to cancel a payment link"
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.
Servidor MCP de OnePlatform
Conecta un agente de código a la documentación de OnePlatform y a la OnePlatform API con sus propias claves, en QA por defecto.
Herramientas
Tres herramientas de documentación funcionan sin claves: docs_search, docs_get_page y api_get_operation. Con
claves, el servidor suma las de la API, agrupadas por vertical (toolset):
Toolset | Qué puede hacer el agente |
| Perfil, historial de saldo, consumo, comercios y avisos. Siempre activo: de acá sale el |
| Links de pago (listar, ver, crear y cancelar) y transacciones |
| Saldo retirable, movimientos, retiros y cobros que pueden pasar al saldo retirable (sólo lectura) |
| Planes, suscripciones y clientes del comercio |
| Solicitudes de terminal de tarjetas y su estado |
| Facturas electrónicas (sólo lectura: el MCP no emite ni anula) |
| Envíos (sólo lectura: el MCP no despacha) |
| Sitios, artículos, trabajos de generación, categorías y rendimiento en buscadores |
| Estado y métricas de analítica, ingresos y alertas de anuncios, mapas de calor |
| Remitentes, plantillas, cuota y mensajes del correo transaccional; conversaciones del correo del negocio |
| Dominios, disponibilidad, precios, transferencias y registros de correo (sólo lectura) |
| Proyectos, errores, último evento, logs, rendimiento y uso; marcar un error como resuelto o ignorado |
| Preparación, canales, ofertas, prospectos, tablero y reporte del embudo |
| Agentes, catálogo, herramientas, presupuesto, ejecuciones y acciones pendientes; detener una ejecución |
Por defecto se listan todos. Para un cliente que admite pocas herramientas, elija las verticales que usa:
ONEPLATFORM_TOOLSETS=pagos,envios (local) o la cabecera X-OnePlatform-Toolsets: pagos,envios (alojado).
Las escrituras (en negrita) no cobran saldo, no emiten documentos fiscales, no mueven dinero ni envían mensajes a
terceros, y el cliente pide confirmación antes de ejecutarlas. La lista exacta está en
tools.manifest.json y lo que nunca puede exponerse, en denylist.json:
administración, credenciales, webhooks, cobros, emisión fiscal y movimientos de dinero. En retiros y dominios sólo se
permiten lecturas.
Related MCP server: Litport MCP server
Uso local (stdio)
ONEPLATFORM_APP_KEY=ak-XXXX… ONEPLATFORM_USER_KEY=sk-XXXX… npx -y @oneplatformlabs/mcpVariable | Valor |
| Clave de aplicación ( |
| Clave de usuario ( |
|
|
| Opcional: verticales a listar, separadas por comas (por defecto, todas) |
Instalación por cliente: https://developer.1platform.pro/docs/saas/1platform-api/integrar-con-ia
Uso alojado (HTTP)
node dist/cli.js --http sirve Streamable HTTP sin estado en POST /mcp y GET /healthz. Las claves llegan en
X-OnePlatform-App-Key y X-OnePlatform-User-Key en cada solicitud; el entorno lo fija ONEPLATFORM_ENV al arrancar.
Límites: 30 solicitudes por minuto por IP, 120 por par de claves y 256 KiB por cuerpo.
URL | API |
| QA |
| Producción |
El entorno lo decide la URL; ninguna cabecera o parámetro lo cambia.
claude mcp add --transport http oneplatform https://mcp-qa.1platform.pro/mcp \
--header "X-OnePlatform-App-Key: $ONEPLATFORM_APP_KEY" \
--header "X-OnePlatform-User-Key: $ONEPLATFORM_USER_KEY"Despliegue
Variable | Valor |
| URL interna del API del mismo entorno ( |
| Saltos públicos de confianza además de los privados ( |
La IP del cliente se resuelve detrás de Cloudflare y del front door con un port del resolver del API
(src/http/client-address.ts, vectores compartidos en
test/vectors/client-address.json). Esa IP limita al cliente en el MCP y viaja
al API como única entrada de X-Forwarded-For, escrita de nuevo y nunca copiada de la solicitud: el contenedor
llama al API por la red privada de Docker, así que el API cuenta un balde por cliente.
Esa red es mcp-net-{qa,prod}: la crea el compose del Core con subred explícita y sólo el API y este
contenedor están en ella (hasta #6 el MCP compartía la red del motor de telemetría). Por eso el Core se
despliega antes: sin la red, el up falla y el deploy vuelve a la imagen anterior. Una rama vieja del Core
en QA saca al API de la red hasta que traiga main.
deploy/compose.{qa,prod}.yml y deploy/remote-deploy.sh (comando forzado de la llave
de despliegue: <qa|prod> <sha de main> o <qa|prod> rollback); el workflow Deploy hosted MCP despliega QA y
luego producción en cada push a main cuando la variable MCP_DEPLOY_ENABLED vale true.
Vigencia de la documentación
Las herramientas de documentación leen llms.txt, los Markdown y el OpenAPI publicados por el portal,
con caché de diez minutos. El portal debe publicar su contrato actualizado para que api_get_operation
lo entregue; instalar de nuevo el paquete MCP no corrige una especificación atrasada en el portal.
npm run check:docs-freshness compara rutas, operaciones, esquemas y autenticación del portal con la API viva.
Falla ante diferencias o errores de descarga, sin respaldo silencioso; cada descarga tiene 120 s y un
solo reintento ante error de red o tiempo agotado (no ante HTTP de error). Ignora prosa y ejemplos saneados;
no sustituye la revisión editorial. Se ejecuta cada dos horas mediante un workflow de sólo lectura.
Para verificar un portal candidato, configure ONEPLATFORM_DOCS_OPENAPI_URL con su OpenAPI; para un
banco local también puede configurar ONEP_API_OPENAPI_URL. No se imprimen esas URLs.
La generación de herramientas (fetch-openapi y check:tools) usa directamente el OpenAPI público de la API.
Así, una copia atrasada en el portal no puede ocultar cambios de las herramientas ejecutables. La allowlist,
los toolsets y los límites de escritura siguen en tools.manifest.json y denylist.json.
Available Tools
3 toolsapi_get_operationARead-only
Devuelve el contrato exacto de una operación de la OnePlatform API (método, ruta, parámetros, cuerpo, respuestas y códigos de error) a partir de su operationId. No necesita claves.
| Name | Required | Description | Default |
|---|---|---|---|
| operationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, but the description adds a genuinely new behavioral fact the annotations do not encode: "No necesita claves" (no authentication required). It also discloses the shape of what is returned, which is valuable for a read tool with no output schema. It does not cover failure behavior for an unknown operationId or any caching/rate-limit 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?
Two tight sentences, front-loaded with the returned content, then the auth constraint. No filler or 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?
The enumeration of return fields compensates well for the absent output schema, but with 0% parameter documentation and no sibling differentiation, an agent still lacks guidance on where operationIds come from and how this differs from the two docs_* 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 0% for the single required parameter, so the description must compensate. It only repeats that input is an "operationId" and adds no format, origin (e.g., from docs_search results), or validity guidance beyond the regex already 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?
States a specific verb+resource ("Devuelve el contrato exacto de una operación de la OnePlatform API") and enumerates exactly what the contract contains: método, ruta, parámetros, cuerpo, respuestas y códigos de error. It does not, however, name or contrast the sibling tools (docs_search, docs_get_page), so an agent must infer the boundary itself.
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 tool is the one to call when you have an operationId and need the full API contract. There is no explicit when-to-use vs. when-not, and no mention of the sibling docs tools as alternatives or prerequisites (e.g., how to first obtain an operationId).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_get_pageARead-only
Devuelve una página de la documentación de OnePlatform en Markdown. Acepta la ruta de la página (por ejemplo /docs/saas/1platform-api/links-de-pago) o su URL. No necesita claves.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Ruta o URL de la página en developer.1platform.pro. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavioral context on top: the payload is returned in Markdown and no credentials are needed, which tells the agent it can call it blind. What it does not say is what happens on a nonexistent path or whether content is paginated.
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: what it returns, what it accepts with an example, and the auth note. Front-loaded with the outcome and zero redundant text.
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 one-parameter read-only fetch with a fully documented schema and no output schema, the description covers return format (Markdown) and auth needs. Only error/not-found behavior is left unaddressed, a minor gap at this complexity level.
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 already says the parameter accepts a route or URL on developer.1platform.pro. The description nevertheless adds a concrete worked example path (/docs/saas/1platform-api/links-de-pago), which is the piece agents most often guess wrong, so it edges above the baseline 3.
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: returns a OnePlatform documentation page in Markdown, which an agent can instantly tell apart from docs_search or api_get_operation. It does not explicitly name a sibling to contrast against, 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?
Usage is only implied by the name and by the note that no keys are required. There is no explicit guidance on when to use this versus docs_search (e.g. 'use this when you already have the path; use docs_search to find it'), and no exclusions or prerequisites beyond the auth note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_searchARead-only
Busca en la documentación de OnePlatform para desarrolladores y devuelve las páginas más relevantes con su URL en Markdown. No necesita claves.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Qué busca, en palabras (por ejemplo: «crear un link de pago»). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses two useful behavioral facts: results come back as Markdown with URLs, and no API key is required. It does not mention ranking behavior, latency, or result-count behavior, keeping it short of a 5.
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 zero waste; the core purpose and return format are front-loaded, and the auth note is appended briefly at the end.
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 read-only search tool with annotations present and no output schema, the description covers what it does, what it returns, and that no key is needed. The main gap is the undocumented `limit` parameter and any hint about result ordering or pagination.
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 50%: `query` is documented in the schema with an example, but `limit` has no description anywhere. The description's phrase 'las páginas más relevantes' hints at result selection but never explains the limit parameter, so it adds little over the schema baseline.
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 (busca) and resource (documentación de OnePlatform para desarrolladores) plus the return shape: most relevant pages with their URL in Markdown. It implicitly separates itself from docs_get_page (fetch a specific page) and api_get_operation, but never names those siblings explicitly.
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 explicit when-to-use or when-not-to-use guidance, and no mention of when to prefer docs_get_page for full page content or api_get_operation for API references. The only contextual note is 'No necesita claves', which is an auth fact rather than usage routing.
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
v0.1.1- First observed
api_get_operation - First observed
docs_get_page - First observed
docs_search
TDQS
Scored across 3 tools
The three tools occupy clearly separate niches: free-text documentation search, direct documentation page retrieval by path/URL, and exact API operation contract lookup by operationId. Search vs. fetch is a well-understood pair, and the API-reference tool is a distinct resource entirely. No two tools could plausibly be confused for one another.
All names follow a strict {domain}_{action} snake_case pattern (docs_search, docs_get_page, api_get_operation), with clear domain prefixes distinguishing documentation from API concerns. Verb choice is consistent and readable throughout.
Three tools is a tight, purposeful surface with no redundancy, and each covers a genuinely different retrieval need. It sits at the low end of comfortable scope, leaving some room for additional reference operations, but nothing feels padded.
Documentation search, page fetch, and operation lookup cover the core reference workflow, but there is no way to enumerate or list available API operations, so api_get_operation depends entirely on the caller already knowing an operationId (or the docs surfacing it). No listing/browsing or discovery operation is a notable gap for an API-reference server.
Maintenance
Related MCP Connectors
Read-only search and Markdown pages from the OpenPlanr docs, for coding agents.
Access and search Branch's official API documentation directly within any AI agent or client.
Gemmein docs, API reference, error explainers and a live integration check for coding agents.
A read-only verified record of agent-operable GTM tools: search, fetch, compare, track changes.
Related MCP Servers
AlicenseDqualityBmaintenanceEnables agents to access live DeFi, social intelligence, risk, and API documentation tools with a caller-supplied API key.16593 npmMIT
Litport MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables coding agents and chat clients to inspect proxy tokens, usage, pools, geo targeting, and build ready-to-use proxy connection URLs via the Litport account API, while remaining read-only.130 npmMIT- AlicenseAqualityAmaintenanceEnables a coding agent to get short, token-efficient answers about a project through grouped searches, focused symbol or section reads, and bounded read-only script output, with safety limits on paths, secrets, commands, and response size.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to search public documentation, retrieve SDK snippets with verification status, and access published pricing and an llms.txt resource in a read-only, credential-free way.MIT