Unstructured API MCP Server for Research Paper Data Processing
非结构化数据 MCP 黑客松的 GitHub 仓库。
HeetVekariya
README
用于研究论文数据处理的 Unstructured API MCP 服务器
通过利用 Unstructured API,此服务器可以轻松访问一系列强大的工具,这些工具可以从研究论文中提取有意义的信息,然后可用于微调语言模型 (LLM),从而减少研究人员的文献综述时间。
查看博客:
- 有关黑客马拉松、项目以及后续步骤的详细说明,请查看我在 Dev.to 上的博客文章:Unstructured Model Context Protocol Hackathon。
目录:
设置
安装依赖项:
uv add "mcp[cli]"
uv pip install --upgrade unstructured-client python-dotenv
或者使用 uv sync
。
要求
在开始使用 UNS_MCP 项目之前,请确保您已完成以下设置:
-
UNSTRUCTURED_API_KEY
- 从 Unstructured 平台 获取您的 API 密钥,以访问其用于文档处理的 API。
-
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY
- 设置一个 Google Cloud 项目并创建一个服务帐户,以启用对 Google Drive 的访问权限,以便读取 PDF。查看 此处 的设置过程。
- 保存您的服务帐户的 JSON 凭据,并使用它来设置 GOOGLEDRIVE_SERVICE_ACCOUNT_KEY。
-
MONGO_DB_CONNECTION_STRING
- 设置一个 MongoDB 数据库(云),并获取用于连接到数据库的连接字符串。查看 此处 的设置过程。
-
.env.template
.env.template
文件包含所有必需的环境变量。将此文件复制到.env
,并为上面提到的密钥设置必要的值。
.env
文件示例:UNSTRUCTURED_API_KEY="<key-here>" MONGO_DB_CONNECTION_STRING="<CONNECTION_STRING>" GOOGLEDRIVE_SERVICE_ACCOUNT_KEY="<converted string>"
项目流程
-
用户查询到 MCP 客户端
-
Claude 与
UNS_MCP
服务器交互- Claude 将用户的查询转发到名为
UNS_MCP
的自定义 MCP 服务器。
- Claude 将用户的查询转发到名为
-
MCP 工具执行 Unstructured API
UNS_MCP
与 Unstructured API 交互以处理研究论文 PDF,提取相关信息,并将其转换为结构化的 JSON 数据。
-
结构化数据 (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. 开发工作流程
-
定义连接器:设置 Google Drive 源和 MongoDB 目标连接器。
-
分区:使用 自动分区 以实现最佳文档拆分。
-
分块:应用 按页面分块 以获得可管理的文本段。
-
丰富:使用 NER 提取实体,并使用 表格丰富 处理任何表格。
-
嵌入:将文本转换为嵌入以进行查询或分析。
注意:调整流程:根据需要调整任何步骤(分区、分块、丰富、嵌入)。
3. 设置 Claude 桌面
- 按照 以下 给出的步骤安装 Claude 桌面 并将其与 UNS_MCP 服务器集成。
- 重启 Claude 以链接到 MCP 服务器并确保工作流程功能。
4. 查询并运行工作流程
- 使用 Claude 与系统交互并执行查询以列出、创建、编辑、删除和运行工作流程。您可以执行许多此类任务,请浏览上面给出的“可用工具”。
5. 结果
Claude 桌面集成
要在 Claude 桌面中安装:
- 运行以下命令转到
claude_desktop_config.json
。
# 对于 macOS 或 Linux:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 对于 Windows:
code $env:AppData\Claude\claude_desktop_config.json
- 在该文件中添加:
{
"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
}
}
}
-
重启 Claude 桌面。
-
从 Claude 桌面看到的示例问题。
- 当您查询目标连接器列表时,您将看到“未找到目标”。检查您的 API 密钥是否在
.env
或您的 config json 中,它需要是您在https://platform.unstructured.io/app/account/api-keys
中的个人密钥。
- 当您查询目标连接器列表时,您将看到“未找到目标”。检查您的 API 密钥是否在
调试工具
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
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

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

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

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