Skip to main content
Glama
robertoamoreno

CouchDB MCP Server

카우치디비-mcp-서버

대장간 배지

CouchDB와 상호 작용하기 위한 모델 컨텍스트 프로토콜 서버

CouchDB 데이터베이스 및 문서 관리 도구를 제공하는 TypeScript 기반 MCP 서버입니다. AI 어시스턴트가 간단한 인터페이스를 통해 CouchDB와 상호 작용할 수 있도록 지원합니다.

특징

도구

기본 도구(모든 CouchDB 버전)

  • createDatabase - 새로운 CouchDB 데이터베이스 생성

    • dbName 필수 매개변수로 사용합니다.

    • 데이터베이스가 존재하지 않으면 생성합니다.

  • listDatabases - 모든 CouchDB 데이터베이스 나열

    • 데이터베이스 이름 배열을 반환합니다.

  • deleteDatabase - CouchDB 데이터베이스 삭제

    • dbName 필수 매개변수로 사용합니다.

    • 지정된 데이터베이스와 해당 모든 문서를 제거합니다.

  • createDocument - 데이터베이스에서 새 문서를 만들거나 기존 문서를 업데이트합니다.

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

      • docId : 문서 ID

      • data : 문서 데이터(JSON 객체)

        • 업데이트의 경우 현재 문서 개정 내용을 포함하는 _rev 필드를 포함합니다.

    • 보고:

      • 새 문서의 경우: 문서 ID 및 새 개정판

      • 업데이트: 문서 ID 및 업데이트된 개정판

    • _rev 필드의 존재 여부에 따라 작업이 생성되는지 업데이트되는지 자동으로 감지합니다.

  • getDocument - 데이터베이스에서 문서 가져오기

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

      • docId : 문서 ID

    • 문서 내용을 반환합니다

Mango 쿼리 도구(CouchDB 3.x+ 전용)

  • createMangoIndex - 새로운 Mango 인덱스를 만듭니다.

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

      • indexName : 인덱스의 이름

      • fields : 인덱싱할 필드 이름의 배열

    • 효율적인 쿼리를 위해 새 인덱스를 생성합니다.

  • deleteMangoIndex - Mango 인덱스 삭제

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

      • designDoc : 디자인 문서 이름

      • indexName : 인덱스의 이름

    • 기존 Mango 인덱스를 제거합니다.

  • listMangoIndexes - 데이터베이스의 모든 Mango 인덱스 나열

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

    • 데이터베이스의 모든 인덱스에 대한 정보를 반환합니다.

  • findDocuments - Mango 쿼리를 사용하여 문서 쿼리

    • 필수 매개변수:

      • dbName : 데이터베이스 이름

      • query : Mango 쿼리 객체

    • CouchDB의 Mango 쿼리 구문을 사용하여 쿼리를 수행합니다.

Related MCP server: MCP Docs RAG Server

버전 지원

서버는 CouchDB 버전을 자동으로 감지하고 그에 따라 기능을 활성화합니다.

  • 모든 버전: 기본 데이터베이스 및 문서 작업

  • CouchDB 3.x+: Mango 쿼리 지원(인덱스 및 쿼리)

구성

서버에는 CouchDB 연결 URL과 버전이 필요합니다. 이는 환경 변수를 통해 제공할 수 있습니다.

지엑스피1

서버를 빌드하세요:

npm run build

자동 재빌드를 사용한 개발의 경우:

npm run watch

설치

Smithery를 통해 설치

Smithery를 통해 Claude Desktop용 couchdb-mcp-server를 자동으로 설치하려면:

npx -y @smithery/cli install @robertoamoreno/couchdb-mcp-server --client claude

Claude Desktop과 함께 사용하려면 서버 구성을 추가하세요.

MacOS의 경우: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows의 경우: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "couchdb-mcp-server": {
      "command": "/path/to/couchdb-mcp-server/build/index.js",
      "env": {
        "COUCHDB_URL": "http://username:password@localhost:5984"
      }
    }
  }
}

필수 조건

  • Node.js 14 이상

  • CouchDB 인스턴스 실행

  • 인증이 활성화된 경우 적절한 CouchDB 자격 증명

디버깅

MCP 서버는 stdio를 통해 통신하므로 디버깅이 어려울 수 있습니다. 패키지 스크립트로 제공되는 MCP Inspector를 사용하는 것이 좋습니다.

npm run inspector

검사기는 브라우저에서 디버깅 도구에 액세스할 수 있는 URL을 제공합니다.

오류 처리

서버에는 일반적인 시나리오에 대한 강력한 오류 처리 기능이 포함되어 있습니다.

  • 잘못된 데이터베이스 이름 또는 문서 ID

  • 데이터베이스가 이미 존재합니다/존재하지 않습니다

  • 연결 문제

  • 인증 실패

  • 잘못된 문서 데이터

모든 오류는 올바르게 형식화되어 적절한 오류 코드 및 메시지와 함께 MCP 프로토콜을 통해 반환됩니다.

Available Tools

5 tools
createDatabaseC

Create a new CouchDB database

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNameYesDatabase name

TDQS

C2.9/5.0
Behavior2/5

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 tool creates a database but lacks critical details: it doesn't specify if this requires admin privileges, what happens if the database already exists (e.g., error or overwrite), or any rate limits or side effects. This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly, though it could benefit from more detail given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a database creation tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions, error handling, or what the tool returns upon success. For a mutation tool with zero annotation coverage, more completeness is needed to guide an agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'dbName' documented as 'Database name'. The description adds no additional meaning beyond this, such as naming conventions, length restrictions, or character constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description doesn't compensate with extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('a new CouchDB database'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'createDocument' or 'listDatabases', which would require more specificity about what distinguishes database creation from document creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'createDocument' or 'deleteDatabase'. There's no mention of prerequisites, such as needing admin permissions or checking if a database already exists, nor any explicit exclusions or recommended contexts for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createDocumentC

Create a new document or update an existing document in a database

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNameYesDatabase name
docIdYesDocument ID
dataYesDocument data

TDQS

C2.9/5.0
Behavior2/5

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. While it mentions the tool can both create and update documents, it doesn't specify whether updates are partial or full replacements, what permissions are required, whether operations are idempotent, or what happens on conflicts. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly states the tool's dual functionality. It's appropriately sized for the tool's purpose without unnecessary elaboration, though it could potentially be more front-loaded with critical behavioral information given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a document creation/update tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens when creating versus updating, what the response looks like, error conditions, or important behavioral constraints. Given the mutation nature and complexity of the operation, more contextual information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so all three parameters (dbName, docId, data) are documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema, such as format requirements for docId or constraints on data structure. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('create' and 'update') and resource ('document in a database'), making it easy to understand what the tool does. However, it doesn't explicitly distinguish this from sibling tools like 'createDatabase' or 'getDocument', which would require more specific differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'createDatabase' for creating databases or 'getDocument' for retrieving documents. There's no mention of prerequisites, error conditions, or typical use cases, leaving the agent with insufficient context for appropriate tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deleteDatabaseC

Delete a CouchDB database

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNameYesDatabase name to delete

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states 'Delete' which implies a destructive mutation, but doesn't disclose critical behavioral traits: whether deletion is permanent, if it requires specific permissions, what happens to contained documents, or error conditions. This is a significant gap for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after deletion (success/failure responses), doesn't warn about irreversible data loss, and doesn't provide context about the CouchDB environment. For a tool that permanently removes resources, this lacks critical completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the single parameter 'dbName' is fully described in the schema as 'Database name to delete'). The description doesn't add any parameter meaning beyond what the schema provides, so it meets the baseline of 3 when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and target resource ('a CouchDB database'), providing specific verb+resource pairing. It doesn't explicitly distinguish from sibling tools like 'createDatabase' or 'listDatabases', but the verb 'Delete' inherently differentiates it from creation and listing operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., database must exist), consequences (e.g., irreversible data loss), or relationships to sibling tools like 'createDatabase' for recreation or 'listDatabases' for verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDocumentC

Get a document from a database

ParametersJSON Schema
NameRequiredDescriptionDefault
dbNameYesDatabase name
docIdYesDocument ID

TDQS

C2.9/5.0
Behavior2/5

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 tool retrieves a document but lacks details on permissions required, error handling (e.g., if the document doesn't exist), response format, or any side effects. This is a significant gap for a read operation in a database context, where such information is crucial for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential information, achieving optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of database operations and the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like error cases, return values, or security requirements, which are critical for an agent to use the tool effectively. The description alone is insufficient for safe and informed tool invocation in this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('dbName' and 'docId'). The description adds no additional meaning beyond what the schema provides, such as examples or constraints. According to the rules, when schema coverage is high (>80%), the baseline score is 3, which applies here as the description doesn't compensate with extra param details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('a document from a database'), making the purpose immediately understandable. It distinguishes from siblings like 'createDocument' and 'deleteDatabase' by specifying retrieval rather than creation or deletion. However, it doesn't explicitly differentiate from 'listDatabases' in terms of scope (single document vs. listing databases), 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.

Usage Guidelines2/5

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 and document), exclusions (e.g., not for creating or deleting), or comparisons to sibling tools like 'listDatabases' for broader queries. This leaves the agent with minimal 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.

listDatabasesB

List all CouchDB databases

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves - no information about pagination, rate limits, authentication requirements, error conditions, or return format. 'List all' implies completeness but doesn't guarantee it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple list operation and front-loads the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with no annotations and no output schema, the description is insufficient. It doesn't explain what the output looks like (array of database names? objects with metadata?), potential limitations, or error handling. The agent would need to guess about the return format and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (though empty). The description appropriately doesn't discuss parameters since none exist, earning a baseline score of 4 for tools with no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and target resource ('all CouchDB databases'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'getDocument' or 'createDatabase' beyond the obvious scope difference, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. While the purpose is clear, there's no mention of prerequisites, timing considerations, or comparison to sibling tools like 'getDocument' for retrieving specific database information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a distinct purpose targeting specific resources and actions: createDatabase, deleteDatabase, and listDatabases handle database-level operations, while createDocument and getDocument handle document-level operations. There is no overlap or ambiguity between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., createDatabase, getDocument) using camelCase throughout. The naming is predictable and uniform across all five tools.

Tool Count5/5

With 5 tools, this server is well-scoped for basic CouchDB operations, covering database and document management without being overly sparse or bloated. Each tool serves a clear and necessary function.

Completeness4/5

The toolset covers core CRUD operations for databases (create, delete, list) and documents (create, get), but lacks document deletion and update tools, which are common in database workflows. This minor gap might require workarounds but does not severely hinder functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A TypeScript-based MCP server that enables LLM agents to interact with Gel databases through natural language, providing tools to learn database schemas, validate and execute EdgeQL queries.
    2
    13
    12
    ISC
  • F
    license
    A
    quality
    F
    maintenance
    A TypeScript MCP server that allows querying documents using LLMs with context from locally stored repositories and text files through a RAG (Retrieval-Augmented Generation) system.
    4
    17
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A TypeScript MCP server that enables AI assistants to create, manage, and manipulate 'crystals' - structured data containers for storing complex analysis, code, and knowledge that can be exported and reimported across different AI conversations.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robertoamoreno/couchdb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server