使用说明
非结构化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 < /path/to/google_service_account_key.json 在终端中获取字符串值 |
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET |
需要通过以下方式创建copula卷/增量表连接器 uns-mcp 服务器,请参阅 文档 和 这里 |
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_ID |
需要通过以下方式创建One Drive连接器 uns-mcp 服务器,请参阅 文档 |
PINECONE_API_KEY |
需要通过以下方式创建Pinecone矢量DB连接器 uns-mcp 服务器,请参阅 文档 |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY |
需要通过以下方式创建salesforce源连接器 uns-mcp 服务器,请参阅 文档 |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID |
需要通过以下方式创建One Drive连接器 uns-mcp 服务器,请参阅 文档 |
LOG_LEVEL |
用于设置我们的日志记录级别 minimal_client,例如设置为ERROR以获取所有内容 |
CONFIRM_TOOL_USE |
设置为true,以便 minimal_client 可以在每次调用工具之前确认执行 |
DEBUG_API_REQUESTS |
设置为true,以便 uns_mcp/server.py 可以输出请求参数以进行更好的调试 |
Firecrawl源
火爬 是一个网络抓取API,它在我们的MCP中提供了两个主要功能:
- HTML内容检索:使用
invoke_firecrawl_crawlhtml开始爬行作业check_crawlhtml_status监控他们 - LLM优化文本生成:使用
invoke_firecrawl_llmtxt生成文本和check_llmtxt_status检索结果
Firecrawl的工作原理:
Web爬网过程:
- 从指定的URL开始,并对其进行分析以识别链接
- 使用站点地图(如果可用);否则,请点击网站上的链接
- 递归遍历每个链接以发现所有子页面
- 从每个访问过的页面收集内容,处理JavaScript渲染和速率限制
- 作业可以通过以下方式取消
cancel_crawlhtml_job如有需要 - 如果您需要将所有信息提取到原始HTML中,请使用此功能,Unstructured的工作流程可以很好地清理它:微笑:
LLM文本生成:
- 爬行后,从爬行的页面中提取干净、有意义的文本内容
- 生成专门为大型语言模型格式化的优化文本格式
- 结果会自动上传到指定的S3位置
- 注意:LLM文本生成作业一旦启动就不能取消。这
cancel_llmtxt_job函数是为了保持一致性而提供的,但Firecrawl API当前不支持该函数。
注:A FIRECRAWL_API_KEY 必须设置环境变量才能使用这些函数。
安装和配置
本指南提供了使用Python 3.12和 uv 工具。
先决条件
- Python 3.12+
uv环境管理- 来自Unstructured的API密钥。您可以注册并获取您的API密钥 这里.
使用 uv (推荐)
使用时无需额外安装 uvx 因为它处理执行。但是,如果您更喜欢直接安装该软件包:
uv pip install uns_mcp
配置Claude桌面
要与Claude Desktop集成,请将以下内容添加到您的 claude_desktop_config.json:
注: 该文件位于 ~/Library/Application Support/Claude/ 目录。
使用 uvx 命令:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
或者,使用Python包:
{
"mcpServers": {
"UNS_MCP": {
"command": "python",
"args": ["-m", "uns_mcp"],
"env": {
"UNSTRUCTURED_API_KEY": "<your-key>"
}
}
}
}
使用源代码
-
克隆存储库。
-
安装依赖项:
uv sync -
将非结构化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协议,通过将客户端和服务器解耦,可以更容易地进行调试:
-
在一个终端中启动服务器:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
在另一个终端中使用本地客户端测试服务器:
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/桌面命令 以向最小客户端添加终端访问。它建立在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工具,因为这个工具不起作用patchapplier,它完全取代了工作流配置。
更改日志.md
任何新开发的功能/修复/增强都将添加到CHANGELOG.md.0.x.dev预发布格式中,然后再升级到稳定版本。
故障排除
- 如果您遇到以下问题
Error: spawn <command> ENOENT意思<command>在您的PATH中未安装或不可见:- 确保安装它并将其添加到PATH中。
- 或在中提供命令的绝对路径
command配置的字段。例如,替换python随着/opt/miniconda3/bin/python
