非结构化API MCP服务器
用于与非结构化API交互的MCP服务器实现。此服务器提供列出源和工作流的工具。
可用工具
| 工具 | 说明 |
|---|---|
list_sources | 列出非结构化API的可用源。 |
get_source_info | 获取特定源连接器的详细信息。 |
create_source_connector | 创建源连接器。) |
update_source_connector | 通过参数更新现有的源连接器。 |
delete_source_connector | 按源id删除源连接器 |
list_destinations | 列出非结构化API的可用目的地。 |
get_destination_info | 获取特定目标连接器的详细信息 |
create_destination_connector | 通过参数创建目标连接器。 |
update_destination_connector | 按目标id更新现有目标连接器 |
delete_destination_connector | 按目标id删除目标连接器 |
list_workflows | 列出非结构化API中的工作流。 |
get_workflow_info | 获取特定工作流的详细信息。 |
create_workflow | 使用源、目标id等创建新的工作流。 |
run_workflow | 使用工作流id运行特定工作流 |
update_workflow | 通过参数更新现有工作流。 |
delete_workflow | 按id删除特定工作流 |
list_jobs | 列出非结构化API中特定工作流的作业。 |
get_job_info | 按作业id获取特定作业的详细信息 |
cancel_job | 按id删除特定作业 |
以下是连接器列表 UNS-MCP 服务器当前支持,请查看非结构化平台支持的源连接器的完整列表 这里 目的地列表 这里。我们计划添加更多!
| 源 | 目标 |
|---|---|
| S3 | S3 |
| Azure | 编织 |
| 谷歌云端硬盘 | 松果 |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| Rancher卷 | |
| Databricks卷增量表 |
要使用创建/更新/删除连接器的工具,必须在.env文件中定义该特定连接器的凭据。以下是列表 credentials 对于我们支持的连接器:
| 凭证名称 | 描述 |
|---|---|
ANTHROPIC_API_KEY | 需要运行 minimal_client 与我们的服务器进行交互。 |
AWS_KEY, AWS_SECRET | 需要通过以下方式创建S3连接器 uns-mcp 服务器,请参阅 文档 和 这里 |
WEAVIATE_CLOUD_API_KEY | 需要创建Weaviate矢量db连接器,请参阅 文档 |
FIRECRAWL_API_KEY | 需要在中使用Firecrawl工具 external/firecrawl.py,注册 火爬 并获取API密钥。 |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | 需要通过以下方式创建Astradb连接器 uns-mcp 服务器,请参阅 文档 |
AZURE_CONNECTION_STRING | 通过创建Azure连接器所需的选项1 uns-mcp 服务器,请参阅 文档 |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | 通过创建Azure连接器所需的选项2 uns-mcp 服务器,请参阅 文档 |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | 通过创建Azure连接器所需的选项3 uns-mcp 服务器,请参阅 文档 |
NEO4J_PASSWORD | 需要通过以下方式创建Neo4j连接器 uns-mcp 服务器,请参阅 文档 |
MONGO_DB_CONNECTION_STRING | 需要通过以下方式创建Mongodb连接器 uns-mcp 服务器,请参阅 文档 |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | 字符串值。原始服务器帐户密钥(如下 文档)在json文件中,运行 `base64 " |
} } } }
**或者,使用Python包:**
{ "mcpServers": { "UNS_MCP": { "command": "python", "args": ["-m", "uns_mcp"], "env": { "UNSTRUCTURED_API_KEY": "" } } } }
### 使用源代码
1. 克隆存储库。
1. 安装依赖项:
uv sync
1. 将非结构化API键设置为环境变量。在根目录中创建一个.env文件,内容如下:
UNSTRUCTURED_API_KEY="YOUR_KEY"
参见 `.env.template` 对于可配置的环境变量。
现在,您可以使用以下方法之一运行服务器:
Using Editable Package Installation
Install as an editable package:
uvx pip install -e .
更新您的Claude桌面配置:
{ "mcpServers": { "UNS_MCP": { "command": "uvx", "args": ["uns_mcp"] } } }
**备注**:记得指向安装包的环境中的uvx可执行文件
Using SSE Server Protocol
**注意:Claude Desktop不支持。**
对于SSE协议,通过将客户端和服务器解耦,可以更容易地进行调试:
1. 在一个终端中启动服务器:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server
1. 在另一个终端中使用本地客户端测试服务器:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" # or make sse-client
**注:** 要停止服务,请使用 `Ctrl+C` 首先在客户端,然后是服务器。
Using Stdio Server Protocol
配置Claude Desktop以使用stdio:
{ "mcpServers": { "UNS_MCP": { "command": "ABSOLUTE/PATH/TO/.local/bin/uv", "args": [ "--directory", "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", "run", "server.py" ] } } }
或者,运行本地客户端:
uv run python minimal_client/client.py uns_mcp/server.py
## 其他本地客户端配置
使用环境变量配置最小客户端:
- `LOG_LEVEL="ERROR"`:设置为禁止LLM的调试输出,为用户显示清晰的消息。
- `CONFIRM_TOOL_USE='false'`:执行前禁用工具使用确认。 **谨慎使用**,特别是在开发过程中,因为LLM可能会执行昂贵的工作流或删除数据。
#### 调试工具
Anthropic提供 `MCP Inspector` 用于调试/测试MCP服务器的工具。运行以下命令以启动调试UI。从那里,您将能够在左侧窗格中添加环境变量(指向您的本地环境变量)。将您的个人API密钥作为env var.包含在其中。转到 `tools`,您可以测试添加到MCP服务器的功能。
mcp dev uns_mcp/server.py
如果您需要将请求调用参数记录到 `UnstructuredClient`,设置环境变量 `DEBUG_API_REQUESTS=false`.
日志存储在一个文件中,格式为 `unstructured-client-{date}.log`,可以检查这些参数以调试请求调用参数 `UnstructuredClient` 功能。
## 向最小客户端添加终端访问权限
我们将使用 [@wonderwhy er/桌面命令](https://github.com/wonderwhy-er/DesktopCommanderMCP) 以向最小客户端添加终端访问。它建立在MCP文件系统服务器上。小心,因为客户(也是法学硕士)现在 **可以访问私人文件。**
执行以下命令安装软件包:
npx @wonderwhy-er/desktop-commander setup
然后使用额外的参数启动客户端:
uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander"
or
make sse-client-terminal
## 使用工具子集
如果你的客户只支持使用部分工具,以下是你应该注意的事项:
- `update_workflow` 工具必须与以下内容一起加载到上下文中 `create_workflow` 工具,因为它包含有关如何创建和配置自定义节点的详细描述。
## 已知问题
- `update_workflow` -需要在上下文中包含它正在更新的工作流的配置,可以由用户提供,也可以通过调用 `get_workflow_info` 工具,因为这个工具不起作用 `patch` applier,它完全取代了工作流配置。
## 更改日志.md
任何新开发的功能/修复/增强都将添加到CHANGELOG.md.0.x.dev预发布格式中,然后再升级到稳定版本。
# 故障排除
- 如果您遇到以下问题 `Error: spawn ENOENT` 意思 `` 在您的PATH中未安装或不可见:
- 确保安装它并将其添加到PATH中。
- 或在中提供命令的绝对路径 `command` 配置的字段。例如,替换 `python` 随着 `/opt/miniconda3/bin/python`