MCP JSON Document Collection Server
モデルコンテキストプロトコルと耐火デモ: JSONドキュメントコレクションサーバー
これは、モデル コンテキスト プロトコルサーバー ( Claude Desktopなどの AI システムにコードとデータをプラグインするために使用される) でFireproofデータベースを使用する方法の例です。
このサーバー:
複数の「JSONドキュメントデータベース」の作成を可能にする(Fireproofを使用して実装)
任意のデータベース内での基本的な CRUD 操作 (作成、読み取り、更新、削除) と、任意のフィールドでソートされたドキュメントをクエリする機能を実装します。
Fireproof Cloud サービスとダッシュボードを使用して、他のユーザーと任意のデータベースを共有できます。
先行技術: これはhttps://github.com/fireproof-storage/mcp-database-serverに基づいています - 複数のデータベースとクラウドへの同期機能を追加します。
サーバーの実行
まず、構築します。
npm install
npm buildClaude 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 Desktop を使用して 3 つのドキュメント データベースを作成し、クラウドに同期するサンプル セッションです。
Related MCP server: MCP TapData Server
1. チャットセッション: 要素のデータベース
人間(2024年12月29日 午後3時59分)
elementsという名前のJSONドキュメントデータベースを作成する
アシスタント(2024年12月29日 午後4時)
「elements」という名前の JSON ドキュメント データベースの作成をお手伝いします。
データベースが正常に作成されました。このデータベースを使用してJSONドキュメントを保存および管理できます。ドキュメントを追加しますか?
人間(2024年12月29日 午後4時)
周期表の希ガスを個別のドキュメントとして追加します
アシスタント(2024年12月29日 午後4時)
希ガスを個別の文書として元素データベースに追加するお手伝いをいたします。それぞれの希ガスの主要な特性も記載します。
7種類の希ガス(ヘリウム、ネオン、アルゴン、クリプトン、キセノン、ラドン、オガネソン)をすべてデータベースに追加しました。各元素について、以下の情報を含めました。
名前とシンボル
原子番号と質量
期間、グループ、ブロック
電子配置
融点と沸点(ケルビン)
密度(g/cm³)
Oganesson は半減期が非常に短い合成元素であり、その特性が実験的に十分に決定されていないため、一部の物理的特性が null としてマークされていることに注意してください。
これらの希ガスに関する特定の情報をデータベースから照会しますか?
人間(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ドキュメントDBを作成する
アシスタント(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¼ | カップ | ドライ | 構造 | 120g/カップ |
無塩バター | 1 | カップ | 脂肪 | 食感と風味 | 227g/カップ |
グラニュー糖 | ¾ | カップ | 甘味料 | 甘さと食感 | 200g/カップ |
ブラウンシュガー | ¾ | カップ | 甘味料 | 水分と風味 | 220g/カップ |
大きな卵 | 2 | 全体 | バインディング | 構造と豊かさ | 各50g |
バニラエキス | 1 | 小さじ | 香料 | 風味の強化 | 5g/小さじ |
塩 | 1 | 小さじ | 調味料 | 風味の強化 | 6g/小さじ |
重曹 | 1 | 小さじ | 発酵 | 上昇し、広がる | 4.8g/小さじ |
チョコレートチップ | 2 | カップ | ミックスイン | 風味と食感 | 170g/カップ |
材料を種類別に整理し、分量、単位、用途、重量を記載しました。特定の材料について、さらに詳しい情報をご覧になりたい場合は、ぜひお問い合わせください。
3. チャットセッション: 馬の品種データベース
人間(2024年12月29日 午後4時03分)
horse_breedsという新しいJSONドキュメントDBを作成する
アシスタント(2024年12月29日 午後4時03分)
馬の品種用の新しい JSON ドキュメント データベースを作成します。
データベースの作成に成功しました。馬の品種を追加しますか?
人間(2024年12月29日 午後4時03分)
はい
アシスタント(2024年12月29日 午後4時04分)
いくつかの人気のある馬の品種とその主な特徴、起源、一般的な用途を追加します。
6 種類の特徴的な馬の品種をデータベースに追加しました。
アラビア - 耐久性と洗練さで知られる
サラブレッド - 競走と運動能力で有名
クライズデール - 力強い荷馬
クォーターホース - アメリカの万能な牧畜馬
フリージアン - オランダ原産の優雅な黒馬
アパルーサ - 斑点模様とネイティブアメリカンの伝統で知られる
各エントリには次の情報が含まれます。
起源と種類
高さの範囲(ハンド単位 - 1ハンド = 4インチ)
一般的な色
身体的特徴
典型的な用途
気質
注目すべき特徴
特定の方法で提示された情報を確認したり、特定の品種について詳しく知りたいですか?
4. チャットセッション: クラウドへの同期
人間(2024年12月29日 午後4時04分)
JSONドキュメントDBのリスト
アシスタント(2024年12月29日 午後4時04分)
作成されたすべての JSON ドキュメント データベースを一覧表示します。
次の 3 つの 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分)
URLを表示
アシスタント(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
これで、3 つのデータベース (horse_breeds、elements、cookie_ingredients) すべてがクラウドに同期され、それぞれのダッシュボード URL からアクセスできるようになりました。
5. チャットセッション:クリーンアップ
人間(2024年12月29日 午後4時06分)
すべてのデータベースを削除する
アシスタント(2024年12月29日 午後4時06分)
3つのデータベースすべてを削除するお手伝いをします。
3 つのデータベースはすべて正常に削除されました。
馬の品種
要素
クッキーの材料
すべてなくなったか確認させてください。
確認しました。システム内にデータベースは残っていません。新しいデータベースを作成しますか?
Markdown に変換しました: https://simonwillison.net/2024/Aug/8/convert-claude-json-to-markdown/
将来の開発アイデア
プロンプト
リソース
権限を持つマルチユーザー
インデックス作成
Firebase npm ライブラリを使用して Claude Desktop から静的 Web サイトを生成する
発達
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