MCP JSON Document Collection Server
모델 컨텍스트 프로토콜 및 방화 데모: JSON 문서 수집 서버
이는 Claude Desktop 과 같은 AI 시스템에 코드와 데이터를 연결하는 데 사용되는 Model Context Protocol 서버에서 Fireproof 데이터베이스를 사용하는 방법의 예입니다.
이 서버:
Fireproof를 사용하여 구현된 여러 개의 "JSON 문서 데이터베이스" 생성을 허용합니다.
모든 데이터베이스 내에서 기본 CRUD 작업(생성, 읽기, 업데이트, 삭제)을 구현하고 모든 필드별로 정렬된 문서를 쿼리하는 기능을 제공합니다.
Fireproof Cloud 서비스와 대시보드를 사용하여 다른 사람들과 모든 데이터베이스를 공유할 수 있습니다.
기존 기술: https://github.com/fireproof-storage/mcp-database-server를 기반으로 하며 여러 개의 데이터베이스와 클라우드와 동기화하는 기능을 추가합니다.
서버 실행
먼저, 만들어 보세요:
지엑스피1
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 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³)
오가네손의 경우, 반감기가 매우 짧은 합성 원소이고 그 특성이 실험적으로 잘 결정되지 않았기 때문에 일부 물리적 특성이 null로 표시되었습니다.
데이터베이스에서 이러한 비활성 기체에 대한 구체적인 정보를 검색하시겠습니까?
인간 (2024년 12월 29일 오후 4시 1분)
문서 보기
보조원 (2024년 12월 29일 오후 4시 1분)
원자 번호별로 정렬된 원소 데이터베이스에서 모든 문서를 쿼리해보겠습니다.
다음은 데이터베이스에 있는 모든 비활성 기체를 원자 번호 순으로 나열한 것입니다(가장 높은 것부터 가장 낮은 것까지):
오가네손(Og) - 118번째 원소
라돈(Rn) - 86번 원소
제논(Xe) - 54번째 원소
크립톤(Kr) - 36번째 원소
아르곤(Ar) - 18번째 원소
네온(Ne) - 10번째 원소
헬륨(He) - 원소 2
각 문서에는 원자량, 밀도, 녹는점과 끓는점(알려진 경우), 전자 배치 등 원소에 대한 자세한 정보가 포함되어 있습니다. 이러한 원소의 특정 특성을 살펴보거나 특정 측면을 비교하고 싶으신가요?
2. 채팅 세션: 쿠키 재료 데이터베이스
인간 (2024년 12월 29일 오후 4시 1분)
cookie_ingredients라는 JSON 문서 DB를 생성합니다.
보조원 (2024년 12월 29일 오후 4시 1분)
"cookie_ingredients"라는 새로운 JSON 문서 데이터베이스를 생성하겠습니다.
데이터베이스가 성공적으로 생성되었습니다. 재료를 추가하시겠습니까?
인간 (2024년 12월 29일 오후 4시 2분)
초콜릿칩 쿠키 레시피의 재료를 개별 문서로 추가합니다.
보조원 (2024년 12월 29일 오후 4시 2분)
초콜릿칩 쿠키의 일반적인 재료를 일반적인 치수와 속성이 적힌 개별 문서로 추가하겠습니다.
클래식 초콜릿칩 쿠키 레시피에 필요한 필수 재료를 모두 넣었습니다. 각 재료에는 다음과 같은 재료가 포함됩니다.
이름과 금액
측정 단위
유형(건조, 습식, 발효 등)
레시피의 목적
가능한 대체품
무게 측정
사용에 대한 중요 참고 사항
데이터베이스에서 이러한 성분에 대한 구체적인 정보를 검색하시겠습니까?
인간 (2024년 12월 29일 오후 4시 2분)
재료를 표로 표시
보조원 (2024년 12월 29일 오후 4시 3분)
재료를 쿼리해서 마크다운 테이블 형식으로 작성하겠습니다.
재료 | 양 | 단위 | 유형 | 목적 | 무게/단위 |
다용도 밀가루 | 2¼ | 컵 | 마른 | 구조 | 120g/컵 |
무염 버터 | 1 | 컵 | 지방 | 질감과 맛 | 227g/컵 |
과립 설탕 | ¾ | 컵 | 감미료 | 단맛과 식감 | 200g/컵 |
흑설탕 | ¾ | 컵 | 감미료 | 수분과 풍미 | 220g/컵 |
큰 계란 | 2 | 전체 | 제본 | 구조와 풍부함 | 각 50g |
바닐라 추출물 | 1 | 티스푼 | 향료 | 풍미 강화 | 5g/티스푼 |
소금 | 1 | 티스푼 | 양념 | 풍미 강화 | 6g/티스푼 |
베이킹 소다 | 1 | 티스푼 | 감화 | 상승하고 확산되다 | 4.8g/티스푼 |
초콜릿 칩 | 2 | 컵 | 믹스인 | 맛과 질감 | 170g/컵 |
재료를 종류별로 정리하고, 양, 단위, 용도, 무게를 표시했습니다. 특정 재료에 대한 추가 정보를 원하시나요?
3. 채팅 세션: 말 품종 데이터베이스
인간 (2024년 12월 29일 오후 4시 3분)
horse_breeds라는 새로운 JSON 문서 DB를 만듭니다.
보조원 (2024년 12월 29일 오후 4시 3분)
말 품종에 대한 새로운 JSON 문서 데이터베이스를 만들어 보겠습니다.
데이터베이스가 성공적으로 생성되었습니다. 말 품종을 추가하시겠습니까?
인간 (2024년 12월 29일 오후 4시 3분)
예
보조원 (2024년 12월 29일 오후 4시 4분)
몇 가지 인기 있는 말 품종과 그 주요 특징, 기원, 일반적인 용도를 추가하겠습니다.
저는 데이터베이스에 6가지 독특한 말 품종을 추가했습니다.
아라비아 - 인내와 세련미로 유명함
순종말 - 경주와 운동 능력으로 유명함
클라이즈데일 - 강력한 견인마
쿼터호스 - 미국의 다재다능한 가축말
프리지안 - 네덜란드의 우아한 검은 말
애팔루사 - 얼룩무늬와 아메리카 원주민 유산으로 유명
각 항목에는 다음 정보가 포함됩니다.
원산지 및 유형
키 범위(손 단위 - 1손 = 4인치)
일반적인 색상
물리적 특성
일반적인 용도
기질
주목할만한 특징
특정 방식으로 제시된 정보를 보고 싶으신가요? 아니면 특정 품종에 대해 더 자세히 알고 싶으신가요?
4. 채팅 세션: 클라우드와 동기화
인간 (2024년 12월 29일 오후 4시 4분)
JSON 문서 DB 목록
보조원 (2024년 12월 29일 오후 4시 4분)
생성된 모든 JSON 문서 데이터베이스를 나열해 보겠습니다.
JSON 문서 데이터베이스는 3개가 있습니다.
말 품종
강요
쿠키_재료
각 데이터베이스에는 해당 주제와 관련된 문서가 포함되어 있습니다.
horse_breeds에는 다양한 말 품종에 대한 정보가 있습니다.
elements에는 비활성 기체에 대한 데이터가 포함되어 있습니다.
cookie_ingredients에는 초콜릿칩 쿠키 재료에 대한 세부 정보가 있습니다.
이러한 데이터베이스에서 구체적인 정보를 검색하고 싶으신가요?
인간 (2024년 12월 29일 오후 4시 4분)
horse_breeds를 클라우드에 동기화
보조원 (2024년 12월 29일 오후 4시 4분)
horse_breeds 데이터베이스를 클라우드 동기화 서비스에 연결하는 데 도움을 드리겠습니다.
horse_breeds 데이터베이스가 클라우드에 성공적으로 연결되었습니다. 위에 제공된 URL을 사용하여 대시보드에 접속할 수 있습니다. 이를 통해 클라우드 인터페이스를 통해 말 품종 데이터를 확인하고 관리할 수 있습니다. 다른 데이터베이스도 클라우드에 동기화하시겠습니까?
인간 (2024년 12월 29일 오후 4시 5분)
URL 표시
보조원 (2024년 12월 29일 오후 4시 5분)
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시 5분)
요소 DB를 클라우드에 동기화
보조원 (2024년 12월 29일 오후 4시 5분)
요소 데이터베이스를 클라우드 동기화 서비스에 연결하겠습니다.
요소 데이터베이스가 클라우드에 성공적으로 연결되었습니다. 다음 위치에서 대시보드에 액세스할 수 있습니다.
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시 5분)
예
보조원 (2024년 12월 29일 오후 4시 5분)
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시 6분)
모든 데이터베이스 삭제
보조원 (2024년 12월 29일 오후 4시 6분)
세 개의 데이터베이스를 모두 삭제하는 데 도움을 드리겠습니다.
세 개의 데이터베이스가 모두 성공적으로 삭제되었습니다.
말 품종
강요
쿠키_재료
모두 사라졌는지 확인해 보겠습니다.
확인됨 - 시스템에 남은 데이터베이스가 없습니다. 새 데이터베이스를 생성하시겠습니까?
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