Unstructured API MCP Server for Research Paper Data Processing

Unstructured API MCP Server for Research Paper Data Processing

非结构化数据 MCP 黑客松的 GitHub 仓库。

HeetVekariya

研究与数据
访问服务器

README

用于研究论文数据处理的 Unstructured API MCP 服务器

通过利用 Unstructured API,此服务器可以轻松访问一系列强大的工具,这些工具可以从研究论文中提取有意义的信息,然后可用于微调语言模型 (LLM),从而减少研究人员的文献综述时间。

查看博客:

目录:

  1. 设置
  2. 要求
  3. 项目流程
  4. 可用工具
  5. 后续步骤
  6. Claude 桌面集成
  7. 调试工具
  8. 本地运行最小客户端,通过 HTTP + SSE 访问本地 MCP 服务器

设置

安装依赖项:

  • uv add "mcp[cli]"
  • uv pip install --upgrade unstructured-client python-dotenv

或者使用 uv sync

要求

在开始使用 UNS_MCP 项目之前,请确保您已完成以下设置:

  1. UNSTRUCTURED_API_KEY

  2. GOOGLEDRIVE_SERVICE_ACCOUNT_KEY

    • 设置一个 Google Cloud 项目并创建一个服务帐户,以启用对 Google Drive 的访问权限,以便读取 PDF。查看 此处 的设置过程。
    • 保存您的服务帐户的 JSON 凭据,并使用它来设置 GOOGLEDRIVE_SERVICE_ACCOUNT_KEY
  3. MONGO_DB_CONNECTION_STRING

    • 设置一个 MongoDB 数据库(云),并获取用于连接到数据库的连接字符串。查看 此处 的设置过程。
  4. .env.template

    • .env.template 文件包含所有必需的环境变量。将此文件复制到 .env,并为上面提到的密钥设置必要的值。

    .env 文件示例:

    UNSTRUCTURED_API_KEY="<key-here>"
    MONGO_DB_CONNECTION_STRING="<CONNECTION_STRING>"
    GOOGLEDRIVE_SERVICE_ACCOUNT_KEY="<converted string>"
    
    
    

项目流程

  1. 用户查询到 MCP 客户端

  2. Claude 与 UNS_MCP 服务器交互

    • Claude 将用户的查询转发到名为 UNS_MCP 的自定义 MCP 服务器。
  3. MCP 工具执行 Unstructured API

    • UNS_MCP 与 Unstructured API 交互以处理研究论文 PDF,提取相关信息,并将其转换为结构化的 JSON 数据。
  4. 结构化数据 (JSON) 输出存储在目标源中

    • 来自 Unstructured API 的结果被转换为 JSON 格式,然后可以进一步用于微调 LLM,帮助研究人员快速找到相关信息,而无需手动阅读整篇论文。

可用工具

工具 描述
list_sources 列出 Unstructured API 中的可用源。
get_source_info 获取有关特定源连接器的详细信息。
create_gdrive_source 创建一个 Google Drive 源连接器。
update_gdrive_source 通过参数更新现有的 Google 源连接器。
delete_gdrive_source 按源 ID 删除源连接器。
list_destinations 列出 Unstructured API 中的可用目标。
get_destination_info 获取有关特定目标连接器的详细信息。目前,我们有 s3/weaviate/astra/neo4j/mongo DB(更多即将推出!)
create_mongodb_destination 通过参数创建一个 MongoDB 目标连接器。
update_mongodb_destination 通过目标 ID 更新现有的 MongoDB 目标连接器。
delete_mongodb_destination 按目标 ID 删除 MongoDB 目标连接器。
list_workflows 列出 Unstructured API 中的工作流程。
get_workflow_info 获取有关特定工作流程的详细信息。
create_workflow 使用源、目标 ID 等创建一个新的工作流程。
run_workflow 使用工作流程 ID 运行特定的工作流程
update_workflow 通过参数更新现有的工作流程。
delete_workflow 按 ID 删除特定的工作流程。
list_jobs 列出 Unstructured API 中特定工作流程的作业。
get_job_info 按作业 ID 获取有关特定作业的详细信息。
cancel_job 按 ID 删除特定的作业。

后续步骤

1. 设置所需的连接器

Google Drive 源连接器:

  • 创建一个 Google Drive 源连接器,将您的服务帐户与 Google Drive 连接并检索 PDF。
  • 测试连接以确保可访问性。

MongoDB 目标连接器:

  • 设置 MongoDB 目标连接器以存储处理后的数据。
  • 测试连接以确保可访问性。

2. 开发工作流程

  1. 定义连接器:设置 Google Drive 源和 MongoDB 目标连接器。

  2. 分区:使用 自动分区 以实现最佳文档拆分。

  3. 分块:应用 按页面分块 以获得可管理的文本段。

  4. 丰富:使用 NER 提取实体,并使用 表格丰富 处理任何表格。

  5. 嵌入:将文本转换为嵌入以进行查询或分析。

注意:调整流程:根据需要调整任何步骤(分区、分块、丰富、嵌入)。


3. 设置 Claude 桌面

  1. 按照 以下 给出的步骤安装 Claude 桌面 并将其与 UNS_MCP 服务器集成。
  2. 重启 Claude 以链接到 MCP 服务器并确保工作流程功能。

4. 查询并运行工作流程

  • 使用 Claude 与系统交互并执行查询以列出、创建、编辑、删除和运行工作流程。您可以执行许多此类任务,请浏览上面给出的“可用工具”。

5. 结果

Claude 桌面集成

要在 Claude 桌面中安装:

  1. 运行以下命令转到 claude_desktop_config.json
# 对于 macOS 或 Linux:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json

# 对于 Windows:
code $env:AppData\Claude\claude_desktop_config.json
  1. 在该文件中添加:
{
    "mcpServers":
    {
        "UNS_MCP":
        {
            "command": "ABSOLUTE/PATH/TO/.local/bin/uv",
            "args":
            [
                "--directory",
                "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp",
                "run",
                "server.py"
            ],
            "env":
            [
            "UNSTRUCTURED_API_KEY":"<your key>"
            ],
            "disabled": false
        }
    }
}
  1. 重启 Claude 桌面。

  2. 从 Claude 桌面看到的示例问题。

    • 当您查询目标连接器列表时,您将看到“未找到目标”。检查您的 API 密钥是否在 .env 或您的 config json 中,它需要是您在 https://platform.unstructured.io/app/account/api-keys 中的个人密钥。

调试工具

Anthropic 提供了 MCP Inspector 工具来调试/测试您的 MCP 服务器。运行以下命令以启动调试 UI。从那里,您将能够在左侧窗格中添加环境变量(指向您的本地环境)。在那里包含您的个人 API 密钥作为环境变量。转到“工具”,您可以测试添加到 MCP 服务器的功能。

mcp dev uns_mcp/server.py

如果您需要将请求调用参数记录到 UnstructuredClient,请设置环境变量 DEBUG_API_REQUESTS=false。 日志存储在格式为 unstructured-client-{date}.log 的文件中,可以检查该文件以调试到 UnstructuredClient 函数的请求调用参数。

本地运行最小客户端,通过 HTTP + SSE 访问本地 MCP 服务器

这里的主要区别在于,在开发过程中更容易在服务器端设置断点——客户端和服务器是分离的。

# 在一个终端中,运行服务器:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080

或者
make sse-server

# 在另一个终端中,运行客户端:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
或者
make sse-client

提示:首先 ctrl+c 退出客户端,然后退出服务器。否则服务器似乎会挂起。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python