返回市场
莫非克-MCP

莫非克-MCP

作者:morphik-org22 星标更新:2025-11-15

项目介绍

Morphik MCP

Morphik 多模态数据库的 Model Context Protocol (MCP) 服务器实现。

概述

此 MCP 服务器允许 Claude 和其他兼容 MCP 的 AI 助手与 Morphik 数据库系统进行交互,支持以下功能:

  • 文档摄入(文本和文件)
  • 文档检索(根据查询的相关性)
  • 使用大语言模型驱动的补全功能进行文档查询
  • 文档管理(列出、获取、删除)
  • 文件系统导航及从路径摄入文件

服务器支持两种传输模式:

  • 标准输入输出(默认):用于与 Claude Desktop 和其他 MCP 客户端的标准输入输出
  • 可流式传输的 HTTPS:HTTP/HTTPS 端点,用于基于 Web 的集成

预备条件

你需要访问以下之一:

  • 在本地运行的 Morphik 服务器(localhost:8000),或
  • Morphik 云平台

安装与使用

方案 1:直接使用 npx 运行(推荐)

# 连接到本地 Morphik 服务器
npx morphik-mcp

# 连接到 Morphik 云平台(替换为你的实际 URI)
npx morphik-mcp --uri=https://api.morphik.ai

# 指定文件操作允许的目录(逗号分隔)
npx morphik-mcp --allowed-dir=~/Documents,~/Downloads

方案 2:全局安装

npm install -g morphik-mcp

# 连接到本地 Morphik 服务器
morphik-mcp

# 连接到 Morphik 云平台
morphik-mcp --uri=https://api.morphik.ai

# 指定文件操作允许的目录
morphik-mcp --allowed-dir=~/Documents,~/Downloads

方案 3:本地开发

# 克隆仓库
git clone https://github.com/morphik-org/morphik-npm-mcp.git
cd morphik-npm-mcp

# 安装依赖
npm install

# 构建项目
npm run build

# 启动服务器(本地 Morphik)
npm start

# 启动服务器并启用文件操作
node build/index.js --allowed-dir=~/Documents,~/Downloads

服务器默认通过标准输入输出流运行,并且可以与像 Claude 这样的 MCP 客户端一起使用。

对于 HTTP/HTTPS 模式(可流式传输),请参阅 streamable_https.md 文档。

与 Claude Desktop 结合使用

在你的 Claude Desktop 配置文件中添加以下内容:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "morphik-local": {
      "command": "npx",
      "args": ["-y", "morphik-mcp"]
    },
    "morphik-cloud": {
      "command": "npx",
      "args": ["-y", "morphik-mcp", "--uri=https://api.morphik.ai"]
    },
    "morphik-with-files": {
      "command": "npx",
      "args": ["-y", "morphik-mcp", "--allowed-dir=~/Documents,~/Downloads"]
    }
  }
}

MCP 工具

请参阅 MCP_TOOLS.md 获取详细的参数文档和响应格式。

服务器目前提供以下工具,并有更多功能即将推出:

1. 文档摄入

  • ingest-text: 将文本文档摄入到 Morphik 中

    • 参数:content, filename (可选), metadata (可选), apiKey
  • ingest-file-from-path: 从服务器文件系统摄入文件到 Morphik

    • 参数:path, metadata (可选), rules (可选), folderName (可选), endUserId (可选), useColpali (可选)
  • ingest-file-from-base64: 通过提供文件名和 base64 编码的内容上传文件(适用于无法访问磁盘的 HTTP 传输)

    • 参数:filename, base64Content, metadata (可选), rules (可选), folderName (可选), endUserId (可选), useColpali (可选)
  • ingest-files-from-paths: 批量摄入多个文件

    • 参数:paths, metadata (可选), rules (可选), folderName (可选), endUserId (可选), useColpali (可选)

2. 文档检索与导航

  • retrieve-chunks: 根据查询检索最相关的“页面”(文本或图像片段),与 @morphik-app 中的 find_relevant_pages 工具相同

    • 参数:query, filters (可选), k (可选), minScore (可选), folderName (可选), endUserId (可选), useColpali/useReranking (可选), padding (可选,用于相邻上下文)
  • retrieve-docs: 根据查询从 Morphik 检索相关文档

    • 参数:query, filters (可选), k (可选), minScore (可选), folderName (可选), endUserId (可选)
  • search-documents: 通过全文搜索按文件名或标题搜索文档

    • 参数:query, limit (可选,1-100), folderName (可选), endUserId (可选)
  • get-pages-in-range: 获取文档中的一个包含范围内的页面(最多 10 页),与 @morphik-app 中的 get_all_pages_within_range_from_document 相同

    • 参数:documentId, startPage, endPage, folderName (可选), endUserId (可选)

3. 文档管理和元数据

  • get-document: 根据 ID 获取 Morphik 中的具体文档

    • 参数:documentId, apiKey
  • delete-document: 根据 ID 删除 Morphik 中的文档 一参数:documentId, apiKey

  • check-ingestion-status: 检查已摄入文档的处理状态

    • 参数:documentId, apiKey
  • morphik-filters: 查看、设置或清除应用于检索/列表操作的类型化元数据过滤器(支持 eq, regex, number_range, date_range

    • 参数:action, expression/rules payload, logic (可选)
  • list-documents: 更新工具,使用 /documents/list_docs,包括 include_total_count, return_documents, fields,以及文件夹/终端用户范围

    • 参数:skip, limit, filters/metadataFilters, get_count, folderName(s), endUserId, sortBy/sortDirection, fields

4. 文件系统导航

  • list-allowed-directories: 列出服务器被允许访问的目录

    • 参数:无
  • list-directory: 列出特定目录下的文件和子目录

    • 参数:path
  • search-files: 在目录及其子目录中搜索匹配模式的文件

    • 参数:path, pattern, excludePatterns (可选)
  • get-file-info: 获取文件或目录的详细信息

    • 参数:path

文件操作安全

出于安全考虑,文件操作仅限于启动服务器时通过 --allowed-dir 参数明确指定的目录。如果没有指定目录,则只有用户的主目录是可访问的。

服务器会验证所有文件路径以确保它们位于允许的目录内,防止访问敏感的系统文件。还会检查符号链接,确保它们不会指向允许目录之外的位置。

开发

构建项目:

npm run build

运行测试:

npm test

运行手动测试:

npm run test:manual

许可证

ISC