MCP JSON Document Collection Server
Protocolo de contexto de modelo y demostración a prueba de fuego: Servidor de recopilación de documentos JSON
Este es un ejemplo de cómo utilizar una base de datos Fireproof en un servidor de protocolo de contexto de modelo (utilizado para conectar código y datos a sistemas de IA como Claude Desktop ).
Este servidor:
permite la creación de múltiples "Bases de datos de documentos JSON" (implementadas utilizando Fireproof)
Implementa operaciones CRUD básicas (Crear, Leer, Actualizar, Eliminar) dentro de cualquier base de datos y la capacidad de consultar documentos ordenados por cualquier campo.
permite compartir cualquier base de datos con otros mediante el servicio y el panel de control de Fireproof Cloud
Estado de la técnica: se basa en https://github.com/fireproof-storage/mcp-database-server : agrega múltiples bases de datos más la capacidad de sincronizar con la nube.
Ejecución del servidor
Primero, construyalo:
npm install
npm buildPara utilizar con Claude Desktop, agregue la configuración del servidor:
En MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"json-db-collections": {
"command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
}
}
}Ejemplo de sesión de chat de Claude Desktop
Aquí hay una sesión de muestra usando Claude Desktop donde creo 3 bases de datos de documentos y las sincronizo con la nube:
Related MCP server: MCP TapData Server
1. Sesión de chat: Base de datos de elementos
humano (29 de diciembre de 2024, 15:59)
Crea una base de datos de documentos json llamada elementos
asistente (29 de diciembre de 2024, 16:00)
Te ayudaré a crear una base de datos de documentos JSON llamada "elementos".
La base de datos se ha creado correctamente. Ahora puede usarla para almacenar y administrar documentos JSON. ¿Desea agregar algún documento?
humano (29 de diciembre de 2024, 16:00)
Agregue gases nobles de la tabla periódica como documentos individuales.
asistente (29 de diciembre de 2024, 16:00)
Te ayudaré a agregar los gases nobles como documentos individuales a la base de datos de elementos. Incluiré las propiedades clave de cada gas noble.
He añadido los siete gases nobles (helio, neón, argón, criptón, xenón, radón y oganesón) a la base de datos. Para cada elemento, he incluido:
Nombre y símbolo
Número atómico y masa
Periodo, grupo y bloque
Configuración electrónica
Puntos de fusión y ebullición (en Kelvin)
Densidad (en g/cm³)
Téngase en cuenta que para Oganesson, algunas propiedades físicas están marcadas como nulas ya que es un elemento sintético con una vida media muy corta y sus propiedades no están bien determinadas experimentalmente.
¿Quieres consultar alguna información específica sobre estos gases nobles de la base de datos?
humano (29 de diciembre de 2024, 16:01)
mostrar documentos
asistente (29 de diciembre de 2024, 16:01)
Consultaré todos los documentos de la base de datos de elementos, ordenados por número atómico.
Aquí están todos los gases nobles en la base de datos, enumerados en orden de número atómico (del más alto al más bajo):
Oganesón (Og) - Elemento 118
Radón (Rn) - Elemento 86
Xenón (Xe) - Elemento 54
Criptón (Kr) - Elemento 36
Argón (Ar) - Elemento 18
Neón (Ne) - Elemento 10
Helio (He) - Elemento 2
Cada documento contiene información detallada sobre el elemento, incluyendo su masa atómica, densidad, puntos de fusión y ebullición (si se conocen) y configuración electrónica. ¿Desea examinar alguna propiedad específica o comparar ciertos aspectos de estos elementos?
2. Sesión de chat: Base de datos de ingredientes de galletas
humano (29 de diciembre de 2024, 16:01)
Crea una base de datos de documentos JSON llamada cookie_ingredients
asistente (29 de diciembre de 2024, 16:01)
Crearé una nueva base de datos de documentos JSON llamada "cookie_ingredients".
La base de datos se ha creado correctamente. ¿Desea añadir algún ingrediente?
humano (29 de diciembre de 2024, 16:02)
Agregue los ingredientes de la receta de galletas con chispas de chocolate como documentos individuales.
asistente (29 de diciembre de 2024, 16:02)
Agregaré ingredientes comunes para las galletas con chispas de chocolate como documentos individuales con sus medidas y propiedades típicas.
He añadido todos los ingredientes esenciales para una receta clásica de galletas con chispas de chocolate. Para cada ingrediente, incluí:
Nombre y cantidad
Unidad de medida
Tipo (seco, húmedo, leudante, etc.)
Propósito en la receta
Posibles sustitutos
Medidas de peso
Notas importantes sobre el uso
¿Quieres consultar alguna información específica sobre estos ingredientes de la base de datos?
humano (29 de diciembre de 2024, 16:02)
Mostrar los ingredientes como tabla
asistente (29 de diciembre de 2024, 16:03)
Consultaré los ingredientes y los formatearé como una tabla de rebajas.
Ingrediente | Cantidad | Unidad | Tipo | Objetivo | Peso/Unidad |
Harina para todo uso | 2¼ | tazas | seco | estructura | 120 g/taza |
Mantequilla sin sal | 1 | taza | gordo | textura y sabor | 227 g/taza |
Azúcar granulada | ¾ | taza | edulcorante | dulzura y textura | 200 g/taza |
Azúcar moreno | ¾ | taza | edulcorante | humedad y sabor | 220 g/taza |
Huevos grandes | 2 | entero | vinculante | estructura y riqueza | 50 g cada uno |
extracto de vainilla | 1 | cucharilla | condimento | mejora del sabor | 5 g/cucharadita |
Sal | 1 | cucharilla | condimento | mejora del sabor | 6 g/cucharadita |
Bicarbonato | 1 | cucharilla | levadura | levantarse y extenderse | 4,8 g/cucharadita |
Chips de chocolate | 2 | tazas | mezcla | sabor y textura | 170 g/taza |
He organizado los ingredientes por tipo e incluido sus cantidades, unidades, propósitos y medidas de peso. ¿Te gustaría ver más detalles sobre ingredientes específicos?
3. Sesión de chat: Base de datos de razas de caballos
humano (29 de diciembre de 2024, 16:03)
Crea una nueva base de datos de documentos JSON llamada horse_breeds
asistente (29 de diciembre de 2024, 16:03)
Crearé una nueva base de datos de documentos JSON para razas de caballos.
La base de datos se ha creado correctamente. ¿Quieres añadir más razas de caballos?
humano (29 de diciembre de 2024, 16:03)
Sí
asistente (29 de diciembre de 2024, 16:04)
Agregaré varias razas de caballos populares con sus características clave, orígenes y usos típicos.
He añadido seis razas de caballos distintivas a la base de datos:
Árabe: conocido por su resistencia y refinamiento.
Pura sangre: famoso por sus carreras y su capacidad atlética.
Clydesdale: un poderoso caballo de tiro
Quarter Horse: el versátil caballo de ganado de Estados Unidos
Frisón: un elegante caballo negro de los Países Bajos.
Appaloosa: conocido por sus patrones manchados y su herencia nativa americana
Cada entrada incluye información sobre:
Origen y tipo
Rango de altura (en manos, donde 1 mano = 4 pulgadas)
Colores comunes
Características físicas
Usos típicos
Temperamento
Rasgos notables
¿Le gustaría ver la información presentada de una manera específica o aprender más sobre alguna raza en particular?
4. Sesión de chat: Sincronización con la nube
humano (29 de diciembre de 2024, 16:04)
lista de bases de datos de documentos json
asistente (29 de diciembre de 2024, 16:04)
Enumeraré todas las bases de datos de documentos JSON que se han creado.
Tenemos tres bases de datos de documentos JSON:
razas de caballos
elementos
ingredientes de las galletas
Cada base de datos contiene documentos relacionados con su tema específico:
horse_breeds tiene información sobre diferentes razas de caballos
elementos contiene datos sobre los gases nobles
cookie_ingredients tiene detalles sobre los ingredientes de las galletas con chispas de chocolate.
¿Quieres consultar alguna información específica de estas bases de datos?
humano (29 de diciembre de 2024, 16:04)
sincronizar razas de caballos con la nube
asistente (29 de diciembre de 2024, 16:04)
Te ayudaré a conectar la base de datos horse_breeds al servicio de sincronización en la nube.
La base de datos horse_breeds se ha conectado correctamente a la nube. Puede acceder al panel de control mediante la URL proporcionada anteriormente. Esto le permitirá ver y gestionar sus datos de razas de caballos a través de la interfaz en la nube. ¿Desea sincronizar también otras bases de datos con la nube?
humano (29 de diciembre de 2024, 16:05)
mostrar URL
asistente (29 de diciembre de 2024, 16:05)
Aquí está la URL del panel de control para la base de datos horse_breeds:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=horse\_breeds\&remoteName=019414e1-2db0-70aa-b9a4-2e2f78a7adce
Puede utilizar esta URL para acceder y administrar los datos de razas de caballos a través de la interfaz en la nube.
humano (29 de diciembre de 2024, 16:05)
sincronizar elementos de la base de datos a la nube
asistente (29 de diciembre de 2024, 16:05)
Conectaré la base de datos de elementos al servicio de sincronización en la nube.
La base de datos de elementos se ha conectado correctamente a la nube. Puede acceder al panel de control en:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=elements\&remoteName=019414e1-db52-75e7-b8d0-21ce605176a7
¿Te gustaría sincronizar también la base de datos cookie_ingredients?
humano (29 de diciembre de 2024, 16:05)
Sí
asistente (29 de diciembre de 2024, 16:05)
Conectaré la base de datos cookie_ingredients al servicio de sincronización en la nube.
Aquí está la URL del panel de control para la base de datos cookie_ingredients:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=cookie\_ingredients\&remoteName=019414e2-1f47-72d7-bf8f-a721d29a24c7
Ahora las tres bases de datos (horse_breeds, elements y cookie_ingredients) están sincronizadas con la nube y se puede acceder a ellas a través de las URL de sus respectivos paneles.
5. Sesión de chat: Limpieza
humano (29 de diciembre de 2024, 16:06)
eliminar todas las bases de datos
asistente (29 de diciembre de 2024, 16:06)
Te ayudaré a eliminar las tres bases de datos.
Las tres bases de datos se han eliminado correctamente:
razas de caballos
elementos
ingredientes de las galletas
Déjame verificar que ya se fueron todos.
Confirmado: no quedan bases de datos en el sistema. ¿Desea crear alguna nueva?
Convertido a Markdown gracias a : https://simonwillison.net/2024/Aug/8/convert-claude-json-to-markdown/
Ideas de desarrollo futuro
indicaciones
recursos
multiusuario con permisos
indexación
Generar sitios web estáticos desde Claude Desktop usando bibliotecas npm de Firebase
Desarrollo
pnpm install
pnpm build
pnpm run inspector
# To reset, do: rm -rf ~/.fireproof /tmp/dist~/Library/Application\ Support/Claude/claude_desktop_config.json :
{
"mcpServers": {
"json-db-collections": {
"command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
}
}
}Licencia
MIT o Apache 2
Available Tools
8 toolsconnect_json_doc_database_to_cloudB
Connect a JSON document database to cloud sync service
| Name | Required | Description | Default |
|---|---|---|---|
| databaseName | No | name of document database to connect to cloud |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('connect') but lacks details on what this entails—such as whether it's a one-time setup, requires authentication, involves data migration, or has side effects like enabling cloud access. This leaves key behavioral traits unspecified 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?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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?
Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is minimally adequate. It states what the tool does but lacks details on behavior, usage context, or outcomes, leaving gaps that could hinder an agent's ability to invoke it correctly without additional 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?
The input schema has 100% description coverage, with the parameter 'databaseName' clearly documented. The description doesn't add extra meaning beyond the schema, but with only one parameter and high schema coverage, the baseline is strong. A score of 4 reflects that the description doesn't detract from the schema's clarity, though it doesn't enhance it either.
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 clearly states the action ('connect') and the resource ('JSON document database to cloud sync service'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_json_doc_database' or 'list_json_doc_databases', which would require more specific context about what 'connect' entails versus creation or listing.
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. For example, it doesn't specify prerequisites (e.g., whether the database must exist from 'create_json_doc_database'), exclusions, or comparisons to siblings like 'save_json_doc_to_db', leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_json_doc_databaseD
Create a JSON document database
| Name | Required | Description | Default |
|---|---|---|---|
| databaseName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the action 'Create' without details on permissions, side effects (e.g., overwriting existing databases), error handling, or output format. This is inadequate for a mutation tool with zero annotation coverage, failing to inform the agent of risks or expected 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?
The description is a single, efficient sentence with no wasted words, making it appropriately concise. However, it is under-specified rather than optimally structured—it could benefit from front-loading key details like purpose and usage, but its brevity is not inherently flawed.
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?
Given the tool's complexity (a mutation operation with no annotations or output schema) and low schema coverage, the description is severely incomplete. It omits critical context such as behavioral implications, parameter meanings, and relationships to sibling tools, leaving the agent ill-equipped to use 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?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It does not explain the 'databaseName' parameter (e.g., naming constraints, uniqueness, or format). Without this, the agent lacks semantic understanding beyond the schema's basic type, making tool invocation error-prone.
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 'Create a JSON document database' restates the tool name with minimal elaboration, making it tautological. It specifies the verb 'Create' and resource 'JSON document database', but lacks detail on what this entails (e.g., local vs. cloud, structure, or capabilities), and does not distinguish it from sibling tools like 'connect_json_doc_database_to_cloud' or 'list_json_doc_databases'.
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 guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing to create a database before saving documents), exclusions, or comparisons to siblings like 'connect_json_doc_database_to_cloud' for existing databases or 'list_json_doc_databases' for viewing. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_json_doc_databaseC
Delete a JSON document database
| Name | Required | Description | Default |
|---|---|---|---|
| databaseName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Delete') but lacks critical details: whether deletion is permanent or reversible, required permissions, side effects (e.g., all documents in the database are lost), error handling, or confirmation prompts. This is inadequate for a destructive operation.
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 a single, direct sentence with zero wasted words. It front-loads the key action ('Delete') and resource, making it immediately understandable. Every word earns its place, achieving optimal conciseness.
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?
Given the tool's destructive nature, no annotations, no output schema, and low schema coverage, the description is incomplete. It fails to address safety concerns, return values, or error conditions. For a deletion tool, this lack of context poses significant risks for an agent.
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 input schema has 1 parameter with 0% description coverage, so the description must compensate. It mentions 'a JSON document database' but doesn't explain what 'databaseName' represents (e.g., identifier format, case sensitivity, or existence validation). This leaves the parameter's meaning ambiguous 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?
The description clearly states the verb ('Delete') and resource ('a JSON document database'), making the purpose unambiguous. It distinguishes from siblings like 'delete_json_doc_from_db' (which deletes documents, not databases) and 'create_json_doc_database' (which creates databases). However, it doesn't specify the scope (e.g., permanent deletion vs. soft delete), which prevents a perfect score.
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. It doesn't mention prerequisites (e.g., the database must exist), exclusions (e.g., cannot delete if in use), or sibling tools like 'list_json_doc_databases' for verification. Without such context, an agent might misuse it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_json_doc_from_dbC
Delete a JSON document by ID from a document database
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ID of document to delete | |
| databaseName | No | name of document database to delete from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing critical behavioral traits. It doesn't mention whether deletion is permanent, requires specific permissions, has side effects (e.g., on related data), or provides confirmation feedback, leaving significant gaps for a destructive operation.
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 a single, direct sentence that efficiently conveys the core action without unnecessary words. It's front-loaded with the verb 'Delete' and avoids redundancy, making it easy to parse quickly while covering essential elements.
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 tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permanence, error handling), output expectations, or integration with sibling tools, failing to provide sufficient context for safe and effective use in this complex environment.
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 both parameters ('id' and 'databaseName') adequately. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, but doesn't need to compensate given the high coverage, resulting in a baseline score.
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 clearly states the action ('Delete') and resource ('JSON document by ID from a document database'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'delete_json_doc_database' (which deletes entire databases) or 'load_json_doc_from_db' (which retrieves documents), leaving some ambiguity about scope.
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 guidance is provided on when to use this tool versus alternatives like 'delete_json_doc_database' (for deleting databases) or 'save_json_doc_to_db' (for updates). The description lacks context about prerequisites (e.g., needing an existing document ID) or exclusions (e.g., not for bulk deletions), offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_json_doc_databasesA
Returns the list of JSON document databases. Use this to understand which databases are available before trying to access JSON documents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 implies a read-only operation by stating 'Returns the list,' but does not disclose behavioral traits such as whether it requires authentication, has rate limits, returns paginated results, or includes metadata. The description adds basic context (it's for understanding available databases) but lacks details on how the list is formatted or any constraints.
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 appropriately sized and front-loaded: the first sentence states the core purpose, and the second provides usage guidance. Both sentences earn their place by adding value—clarifying the action and when to use it—with no wasted words 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?
Given the tool's low complexity (0 parameters, no annotations, no output schema), the description is somewhat complete but has gaps. It explains the purpose and usage context adequately, but without annotations or output schema, it should ideally describe the return format (e.g., list of names, IDs, or metadata) and any prerequisites. The description is minimal but functional for a simple listing tool.
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 has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description does not need to add parameter semantics, but it implicitly confirms there are no inputs by not mentioning any. This meets the baseline of 4 for zero parameters, as no compensation is required.
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 clearly states the tool's purpose: 'Returns the list of JSON document databases.' It specifies the verb ('Returns') and resource ('JSON document databases'), making the action and target explicit. However, it does not distinguish this tool from its siblings (e.g., 'create_json_doc_database' or 'delete_json_doc_database'), which would require mentioning it's a read-only listing operation versus mutation tools.
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 clear context for when to use this tool: 'Use this to understand which databases are available before trying to access JSON documents.' This implies it should be used as a preliminary step before operations like loading or querying documents. However, it does not explicitly state when not to use it or name alternatives among siblings (e.g., 'query_json_docs_from_db' might also list databases indirectly), missing full differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_json_doc_from_dbC
Load a JSON document by ID from a document database
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of document to load | |
| databaseName | No | name of document database to load from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but lacks details on permissions, error handling (e.g., what happens if the ID doesn't exist), return format, or rate limits. This is inadequate for a tool that likely involves data access and potential failures.
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 a single, efficient sentence that front-loads the core action ('Load a JSON document by ID') without unnecessary words. Every part earns its place by specifying the resource and source, making it highly concise and well-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?
Given the complexity of a database read operation with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., the JSON document content or error messages), behavioral traits, or usage context, leaving significant gaps for an AI agent to rely on.
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 both parameters ('id' and 'databaseName') fully. The description implies loading by ID but doesn't add any syntax, format, or contextual details beyond what the schema provides, meeting the baseline for high 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 clearly states the verb 'Load' and the resource 'JSON document by ID from a document database', making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'query_json_docs_from_db' or 'save_json_doc_to_db', which would require more specific language about retrieval vs. querying or saving.
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. It doesn't mention prerequisites (e.g., needing an existing database), exclusions (e.g., not for querying multiple documents), or refer to sibling tools like 'query_json_docs_from_db' for broader searches, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_json_docs_from_dbC
Query JSON documents sorted by a field from a document database. If no sortField is provided, use the _id field.
| Name | Required | Description | Default |
|---|---|---|---|
| databaseName | Yes | ||
| sortField | Yes |
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. It describes the sorting behavior and default, but lacks critical details: whether this is a read-only operation, if it requires specific permissions, what the output format looks like (e.g., list of documents, pagination), error conditions, or performance implications. For a query tool with zero annotation coverage, this leaves significant gaps.
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 extremely concise—two sentences with zero waste. It front-loads the core purpose and follows with a specific behavioral detail about sorting. Every word earns its place, making it easy to parse quickly.
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?
Given the complexity (query operation with 2 parameters, no annotations, no output schema), the description is incomplete. It covers sorting but omits essential context: output format, error handling, permissions, query capabilities beyond sorting (e.g., filtering), and how it differs from siblings. For a tool that interacts with a database, this leaves too many unknowns for effective use.
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%, so the description must compensate. It adds meaning for 'sortField' by explaining the default behavior when not provided (use '_id'), which clarifies its optional nature despite being marked as required in the schema—this is valuable. However, it doesn't explain 'databaseName' (e.g., what databases are available, format constraints) or other aspects like query filters or limits, leaving parameters partially documented.
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 clearly states the tool's purpose: querying JSON documents sorted by a field from a document database. It specifies the verb ('query'), resource ('JSON documents'), and sorting behavior. However, it doesn't explicitly differentiate from sibling tools like 'load_json_doc_from_db' (which might retrieve a single document) or 'list_json_doc_databases' (which lists databases rather than documents).
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. It mentions default sorting behavior if 'sortField' is not provided, but this is a parameter detail rather than usage context. There's no indication of prerequisites (e.g., database must exist), limitations, or comparisons to sibling tools like 'load_json_doc_from_db' for single-document retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_json_doc_to_dbC
Save a JSON document to a document database
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | JSON document to save | |
| databaseName | Yes | document database to save to |
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. 'Save' implies a mutation, but it doesn't specify if this creates new documents, updates existing ones, requires authentication, has rate limits, or what happens on failure. This leaves critical behavioral traits unaddressed for a write operation.
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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly. Every word earns its place in conveying the core purpose.
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?
Given the complexity of a write operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects like error handling, return values, or dependencies (e.g., database connectivity). For a mutation tool in this context, more information is needed to guide effective use.
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%, with clear descriptions for both parameters ('doc' and 'databaseName'). The description adds no additional meaning beyond the schema, such as format constraints or examples. With high schema coverage, the baseline score of 3 is appropriate, as the schema adequately documents the parameters.
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 clearly states the action ('Save') and resource ('JSON document to a document database'), making the purpose immediately understandable. It distinguishes from siblings like 'load_json_doc_from_db' and 'delete_json_doc_from_db' by specifying the write operation. However, it doesn't explicitly mention that this creates or updates a document, which could be more specific.
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. It doesn't mention prerequisites like needing a connected database or differentiate from 'create_json_doc_database' for setup. Without context on use cases or exclusions, the agent must infer usage from sibling names alone.
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.
8 tool updates
- First observed
connect_json_doc_database_to_cloud - First observed
create_json_doc_database - First observed
delete_json_doc_database - First observed
delete_json_doc_from_db - First observed
list_json_doc_databases - First observed
load_json_doc_from_db - First observed
query_json_docs_from_db - First observed
save_json_doc_to_db
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose with no ambiguity. Database-level operations (create, delete, list) are separate from document-level operations (load, save, delete, query), and the cloud sync tool stands alone. The descriptions reinforce these boundaries, making misselection unlikely.
All tools follow a consistent verb_noun pattern with clear, descriptive names. The naming convention is uniform across all eight tools, using snake_case consistently. This predictability helps agents understand and select tools efficiently.
With 8 tools, the count is well-scoped for managing JSON document databases and documents. It covers core operations without being overwhelming, and each tool serves a distinct, necessary function in the domain. This aligns with typical server tool counts of 3-15.
The tool set provides strong coverage for CRUD operations on both databases and documents, including querying. A minor gap exists in lacking an update operation for documents (e.g., update_json_doc_in_db), but agents can work around this by using save_json_doc_to_db as a replacement. Overall, it supports core workflows effectively.
Maintenance
Related MCP Connectors
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.3-

MCP TapData Serverofficial
FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.-- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for MarkLogic that enables CRUD operations and document querying capabilities through a client interface.MIT
- AlicenseBqualityAmaintenanceA Model Context Protocol server that enables SQL operations (SELECT, INSERT, UPDATE, DELETE) and table management through a standardized interface with SQLite databases.757 npm1ISC