MCP JSON Document Collection Server
模型上下文协议和防火演示:JSON文档收集服务器
这是如何在模型上下文协议服务器(用于将代码和数据插入 AI 系统,例如Claude Desktop )中使用Fireproof数据库的示例。
该服务器:
允许创建多个“JSON 文档数据库”(使用 Fireproof 实现)
在任何数据库中实现基本的 CRUD 操作(创建、读取、更新、删除)以及按任何字段排序查询文档的能力。
允许使用 Fireproof Cloud 服务和仪表板与其他人共享任何数据库
现有技术:这是基于https://github.com/fireproof-storage/mcp-database-server - 它增加了多个数据库以及同步到云的能力。
运行服务器
首先,构建它:
npm install
npm build要与 Claude Desktop 一起使用,请添加服务器配置:
在 MacOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"json-db-collections": {
"command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
}
}
}Claude 桌面聊天会话示例
这是使用 Claude Desktop 的示例会话,我在其中创建了 3 个文档数据库并将它们同步到云端:
Related MCP server: MCP TapData Server
1. 聊天会话:元素数据库
人类(2024年12月29日 下午3:59)
创建一个名为 elements 的 json 文档数据库
助理(2024 年 12 月 29 日 下午 4:00)
我将帮助您创建一个名为“elements”的 JSON 文档数据库。
数据库已成功创建。您现在可以使用此数据库存储和管理 JSON 文档。您想向其中添加文档吗?
人类(2024年12月29日 下午4:00)
将周期表中的稀有气体添加为单独的文档
助理(2024 年 12 月 29 日 下午 4:00)
我会帮您将稀有气体作为单独的文档添加到元素数据库中。我会列出每种稀有气体的关键属性。
我已将所有七种稀有气体(氦、氖、氩、氪、氙、氡和铊)添加到数据库中。对于每种元素,我都添加了:
名称和符号
原子序数和质量
期间、组和块
电子排布
熔点和沸点(开尔文)
密度(单位:g/cm³)
请注意,对于 Oganesson,一些物理属性被标记为空,因为它是一种半衰期非常短的合成元素,并且其属性尚未通过实验很好地确定。
您想从数据库中查询有关这些稀有气体的具体信息吗?
人类(2024年12月29日 下午4:01)
显示文档
助理(2024年12月29日 下午4:01)
我将从元素数据库中查询所有文档,并按原子序数排序。
以下是数据库中所有的稀有气体,按原子序数(从高到低)的顺序列出:
酉 (Og) - 118 号元素
氡 (Rn) - 86 号元素
氙 (Xe) - 第 54 号元素
氪(Kr)——第 36 号元素
氩 (Ar) - 第 18 号元素
氖(Ne)- 元素 10
氦 (He) - 第 2 元素
每份文档都包含该元素的详细信息,包括其原子质量、密度、熔点和沸点(已知)以及电子排布。您想了解这些元素的特定属性或比较它们的某些方面吗?
2. 聊天会话:饼干成分数据库
人类(2024年12月29日 下午4:01)
创建名为 cookie_ingredients 的 json 文档数据库
助理(2024年12月29日 下午4:01)
我将创建一个名为“cookie_ingredients”的新 JSON 文档数据库。
数据库已成功创建。您想添加任何食材吗?
人类(2024年12月29日 下午4:02)
将巧克力曲奇饼干配方中的配料添加为单独的文档
助理(2024年12月29日 下午4:02)
我将添加巧克力曲奇的常见成分作为单独的文档,并附上它们的典型尺寸和特性。
我添加了制作经典巧克力曲奇饼干所需的所有食材。每种食材我都添加了:
姓名及金额
计量单位
类型(干、湿、发酵等)
食谱中的用途
可能的替代品
体重测量
有关使用的重要说明
您想从数据库中查询有关这些成分的任何具体信息吗?
人类(2024年12月29日 下午4:02)
以表格形式显示成分
助理(2024年12月29日 下午4:03)
我将查询成分并将其格式化为降价表。
成分 | 数量 | 单元 | 类型 | 目的 | 重量/单位 |
通用面粉 | 2¼ | 杯子 | 干燥 | 结构 | 120克/杯 |
无盐黄油 | 1 | 杯子 | 胖的 | 质地和风味 | 227克/杯 |
砂糖 | ¾ | 杯子 | 甜味剂 | 甜度和质感 | 200克/杯 |
红糖 | ¾ | 杯子 | 甜味剂 | 水分和风味 | 220克/杯 |
大鸡蛋 | 2 | 所有的 | 绑定 | 结构和丰富性 | 每份50克 |
香草精 | 1 | 茶匙 | 调味料 | 增强风味 | 5克/茶匙 |
盐 | 1 | 茶匙 | 调料 | 增强风味 | 6克/茶匙 |
小苏打 | 1 | 茶匙 | 发酵 | 崛起和蔓延 | 4.8克/茶匙 |
巧克力片 | 2 | 杯子 | 混合 | 风味和质地 | 170克/杯 |
我已按类型整理了所有食材,并标注了其含量、单位、用途和重量。您想查看特定食材的更多详细信息吗?
3. 聊天环节:马匹品种数据库
人类(2024年12月29日 下午4:03)
创建名为 horse_breeds 的新 json 文档数据库
助理(2024年12月29日 下午4:03)
我将为马品种创建一个新的 JSON 文档数据库。
数据库已成功创建。您想添加一些马匹品种吗?
人类(2024年12月29日 下午4:03)
是的
助理(2024年12月29日 下午4:04)
我将添加几种流行的马品种及其主要特征、起源和典型用途。
我在数据库中添加了六种不同的马品种:
阿拉伯马——以耐力和优雅著称
纯种马——以赛马和运动能力而闻名
克莱兹代尔马——一匹强壮的挽马
夸特马——美国多功能牧马
弗里斯兰马——来自荷兰的优雅黑马
阿帕卢萨马——以斑点图案和美洲原住民传统而闻名
每个条目包含以下信息:
起源和类型
身高范围(以手为单位 - 1 手 = 4 英寸)
常见颜色
物理特性
典型用途
气质
显著特征
您想以特定方式查看呈现的信息或了解有关任何特定品种的更多信息吗?
4. 聊天会话:同步到云端
人类(2024年12月29日 下午4:04)
列出 JSON 文档数据库
助理(2024年12月29日 下午4:04)
我将列出所有已创建的 JSON 文档数据库。
我们有三个 JSON 文档数据库:
马的品种
元素
饼干成分
每个数据库都包含与其特定主题相关的文档:
horse_breeds 包含不同马品种的信息
元素包含有关稀有气体的数据
cookie_ingredients 包含有关巧克力曲奇饼干成分的详细信息
您想从这些数据库中查询任何特定信息吗?
人类(2024年12月29日 下午4:04)
将 horse_breeds 同步到云端
助理(2024年12月29日 下午4:04)
我将帮助您将 horse_breeds 数据库连接到云同步服务。
horse_breeds 数据库已成功连接到云端。您可以使用上面提供的 URL 访问仪表板。这将允许您通过云端界面查看和管理您的马匹品种数据。您是否也想将其他数据库同步到云端?
人类(2024年12月29日 下午4:05)
显示网址
助理(2024年12月29日 下午4:05)
这是 horse_breeds 数据库的仪表板 URL:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=horse\_breeds\&remoteName=019414e1-2db0-70aa-b9a4-2e2f78a7adce
您可以使用此URL通过云界面访问和管理马匹品种数据。
人类(2024年12月29日 下午4:05)
将元素数据库同步到云端
助理(2024年12月29日 下午4:05)
我将元素数据库连接到云同步服务。
元素数据库已成功连接到云端。您可以通过以下方式访问仪表板:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=elements\&remoteName=019414e1-db52-75e7-b8d0-21ce605176a7
您也想同步 cookie_ingredients 数据库吗?
人类(2024年12月29日 下午4:05)
是的
助理(2024年12月29日 下午4:05)
我将把 cookie_ingredients 数据库连接到云同步服务。
这是 cookie_ingredients 数据库的仪表板 URL:
https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F\&localName=cookie\_ingredients\&remoteName=019414e2-1f47-72d7-bf8f-a721d29a24c7
现在,所有三个数据库(horse_breeds、elements 和 cookie_ingredients)都已同步到云端,并且可以通过各自的仪表板 URL 进行访问。
5. 聊天会话:清理
人类(2024年12月29日 下午4:06)
删除所有数据库
助理(2024年12月29日 下午4:06)
我会帮你删除所有三个数据库。
所有三个数据库均已成功删除:
马的品种
元素
饼干成分
让我确认一下它们是否都消失了。
已确认 - 系统中没有剩余数据库。您要创建新数据库吗?
转换为 Markdown 感谢: https://simonwillison.net/2024/Aug/8/convert-claude-json-to-markdown/
未来发展思路
提示
资源
具有权限的多用户
索引
使用 Firebase npm 库从 Claude Desktop 生成静态网站
发展
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"
}
}
}执照
MIT 或 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