Metorial-Python SDK 是 AI Skill Hub 本期精选MCP工具之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
Metorial-Python SDK是一款开源的MCP工具,提供了对Metorial API的Python SDK,方便开发者快速开发和部署应用。
Metorial-Python SDK 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Metorial-Python SDK是一款开源的MCP工具,提供了对Metorial API的Python SDK,方便开发者快速开发和部署应用。
Metorial-Python SDK 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/metorial/metorial-python
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"metorial-python-sdk": {
"command": "npx",
"args": ["-y", "metorial-python"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Metorial-Python SDK 执行以下任务... Claude: [自动调用 Metorial-Python SDK MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"metorial-python_sdk": {
"command": "npx",
"args": ["-y", "metorial-python"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
pip install metorial
Some providers (Exa, Tavily) use API keys configured entirely in the dashboard. Just pass the deployment ID — no auth code needed:
providers=[{"provider_deployment_id": "your-exa-deployment-id"}]
setup_session = metorial.provider_deployments.setup_sessions.create( provider_id="your-slack-provider-id", provider_auth_method_id="oauth", redirect_url="https://yourapp.com/oauth/callback", )
deployment = metorial.provider_deployments.create( name="Metorial Search", provider_id="metorial-search", )
providers=[ # Metorial Search (no auth needed) {"provider_deployment_id": deployment.id}, # Dashboard-configured deployment {"provider_deployment_id": "your-slack-deployment-id", "provider_auth_config_id": "slack-auth-config-id"}, # Inline credentials { "provider_deployment_id": "your-github-deployment-id", "provider_auth_config": { "provider_auth_method_id": "github-auth-method-id", "credentials": {"access_token": "ghp_..."}, }, }, ] ```
This example uses PydanticAI with Anthropic Claude and Metorial Search, a built-in web search provider that requires no auth configuration. You just need two environment variables:
METORIAL_API_KEY from platform.metorial.comANTHROPIC_API_KEY from console.anthropic.compip install metorial pydantic-ai python-dotenv
For readability, the README snippets below use bareawait. In a normal.pyscript, wrap them inasync def main()and callasyncio.run(main()).
import os
from metorial import Metorial, metorial_pydantic_ai
from pydantic_ai import Agent
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_pydantic_ai(),
providers=[
{"provider_deployment_id": deployment.id},
],
)
agent = Agent(
"anthropic:claude-sonnet-4-20250514",
system_prompt="You are a helpful research assistant.",
tools=session.tools(),
)
result = await agent.run(
"Search the web for the latest news about AI agents and summarize the top 3 stories."
)
output = getattr(result, "data", None) or getattr(result, "output", str(result))
print(output)
See the full runnable example at examples/pydantic-ai/.
Check out the examples/ directory for complete working examples:
| Example | Framework | Description |
|---|---|---|
[autogen](examples/autogen/) | AutoGen + OpenAI | AutoGen assistant with tool calls |
[crewai](examples/crewai/) | CrewAI + OpenAI | CrewAI agent with Metorial tools |
[google-adk](examples/google-adk/) | Google ADK + Gemini | Google ADK agent with async tool calls |
[pydantic-ai](examples/pydantic-ai/) | PydanticAI + Anthropic | PydanticAI agent with tool calls |
[langchain](examples/langchain/) | LangChain + Anthropic | LangChain agent with react pattern |
[langgraph](examples/langgraph/) | LangGraph + Anthropic | LangGraph streaming agent |
[llamaindex](examples/llamaindex/) | LlamaIndex + OpenAI | FunctionAgent with tool calls |
[openai-agents](examples/openai-agents/) | OpenAI Agents SDK | OpenAI Agents with tool calls |
[haystack](examples/haystack/) | Haystack + OpenAI | Haystack pipeline with tools |
These examples use connect() directly when you want provider-native tool formats rather than a framework adapter.
<details open> <summary><strong>OpenAI</strong></summary>
import os
from openai import AsyncOpenAI
from metorial import Metorial, metorial_openai
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
openai = AsyncOpenAI(api_key=os.environ["OPENAI_API_KEY"])
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_openai(),
providers=[{"provider_deployment_id": deployment.id}],
)
messages = [{"role": "user", "content": "Search the web for the latest news about AI agents."}]
response = await openai.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=session.tools(),
)
if response.choices[0].message.tool_calls:
results = await session.call_tools(response.choices[0].message.tool_calls)
# Add results to messages and continue conversation...
</details>
<details> <summary><strong>Anthropic</strong></summary>
import os
from anthropic import AsyncAnthropic
from metorial import Metorial, metorial_anthropic
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
anthropic = AsyncAnthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_anthropic(),
providers=[{"provider_deployment_id": deployment.id}],
)
response = await anthropic.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=session.tools(),
messages=[{"role": "user", "content": "Search the web for the latest news about AI agents."}],
)
if response.stop_reason == "tool_use":
tool_calls = [b for b in response.content if b.type == "tool_use"]
results = await session.call_tools(tool_calls)
# Add results to messages and continue conversation...
</details>
<details> <summary><strong>Google Gemini</strong></summary>
import os
import google.generativeai as genai
from metorial import Metorial, metorial_google
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_google(),
providers=[{"provider_deployment_id": deployment.id}],
)
model = genai.GenerativeModel("gemini-2.5-pro", tools=session.tools())
chat = model.start_chat()
response = chat.send_message("Search the web for the latest news about AI agents.")
for part in response.parts:
if fn := part.function_call:
result = await session.call_tool(fn.name, dict(fn.args))
# Continue conversation with result...
</details>
<details> <summary><strong>Mistral</strong></summary>
import os
from mistralai import Mistral
from metorial import Metorial, metorial_mistral
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
mistral = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_mistral(),
providers=[{"provider_deployment_id": deployment.id}],
)
response = await mistral.chat.complete_async(
model="mistral-large-latest",
tools=session.tools(),
messages=[{"role": "user", "content": "Search the web for the latest news about AI agents."}],
)
if response.choices[0].message.tool_calls:
results = await session.call_tools(response.choices[0].message.tool_calls)
# Add results to messages and continue conversation...
</details>
<details> <summary><strong>OpenAI-compatible Models (DeepSeek, Together, xAI)</strong></summary>
import os
from openai import AsyncOpenAI
from metorial import Metorial, metorial_openai_compatible
metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])
xai_compatible = AsyncOpenAI(
api_key=os.environ["OPENAI_COMPATIBLE_API_KEY"],
base_url="https://your-openai-compatible-endpoint/v1",
)
deployment = metorial.provider_deployments.create(
name="Metorial Search",
provider_id="metorial-search",
)
session = await metorial.connect(
adapter=metorial_openai_compatible(),
providers=[{"provider_deployment_id": deployment.id}],
)
response = await xai_compatible.chat.completions.create(
model="your-model-name",
tools=session.tools(),
messages=[{"role": "user", "content": "Search the web for the latest news about AI agents."}],
)
if response.choices[0].message.tool_calls:
results = await session.call_tools(response.choices[0].message.tool_calls)
# Add results to messages and continue conversation...
</details>
An auth config represents an already-authenticated connection to a provider — for example, a user who has completed the OAuth flow for Slack. Once created (via the dashboard or a setup session), reference it by ID:
providers=[
{
"provider_deployment_id": "your-slack-deployment-id",
"provider_auth_config_id": "your-auth-config-id",
}
]
session = await metorial.connect( adapter=metorial_pydantic_ai(), providers=[ { "provider_deployment_id": "your-slack-deployment-id", "provider_auth_config_id": completed[0].auth_config.id, } ], ) tools = session.tools()
metorial.connect(adapter=..., providers=[...]) for new code. It matches the Node SDK and does not require manual close calls.provider_session(...) still exists when you want the older provider-specific session helpers inside an async with, but it is now just a thin wrapper over the same adapter/session resolution path used by connect().providers list to combine tools from different MCP servers.The official Python SDK for Metorial. Give your AI agents access to tools like Slack, GitHub, SAP, and hundreds more through MCP — without managing servers, auth flows, or infrastructure.
Sign up for a free account to get started.
session = await metorial.connect( adapter=metorial_pydantic_ai(), providers=[ {"session_template_id": "your-template-id"}, ], ) tools = session.tools()
This SDK formats MCP tools for each LLM provider. Pass the provider parameter to get tools in the right format.
| Provider | Format | Client Library | Models (non-exhaustive) |
|---|---|---|---|
| OpenAI | provider="openai" | openai | gpt-4.1, gpt-4o, o1, o3 |
| Anthropic | provider="anthropic" | anthropic | claude-sonnet-4-5, claude-opus-4 |
| Google Gemini | provider="google" | google-generativeai | gemini-2.5-pro, gemini-2.5-flash |
| Mistral | provider="mistral" | mistralai | mistral-large-latest, codestral-latest |
| DeepSeek | provider="deepseek" | openai (compatible) | deepseek-chat, deepseek-reasoner |
| Together AI | provider="togetherai" | openai (compatible) | Llama-4, Qwen-3 |
| xAI (Grok) | provider="xai" | openai (compatible) | grok-3, grok-3-mini |
For popular agent frameworks, we provide helper functions that convert tools to the framework's native format:
| Framework | Import | Example |
|---|---|---|
| AutoGen | from metorial.integrations.autogen import create_autogen_tools | [example](./examples/autogen/example.py) |
| CrewAI | from metorial.integrations.crewai import create_crewai_tools | [example](./examples/crewai/example.py) |
| Google ADK | from metorial.integrations.google_adk import create_google_adk_tools | [example](./examples/google-adk/example.py) |
| LlamaIndex | from metorial.integrations.llamaindex import create_llamaindex_tools | [example](./examples/llamaindex/example.py) |
| PydanticAI | from metorial.integrations.pydantic_ai import create_pydantic_ai_tools | [example](./examples/pydantic-ai/example.py) |
| LangChain | from metorial.integrations.langchain import create_langchain_tools | [example](./examples/langchain/example.py) |
| LangGraph | from metorial.integrations.langgraph import create_langgraph_tools | [example](./examples/langgraph/example.py) |
| OpenAI Agents | from metorial.integrations.openai_agents import create_openai_agent_tools | [example](./examples/openai-agents/example.py) |
| Haystack | from metorial.integrations.haystack import create_haystack_tools | [example](./examples/haystack/example.py) |
Metorial-Python SDK是一款基本的MCP工具,提供了对Metorial API的Python SDK,虽然有11个星星,但仍然需要进一步开发和完善。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,Metorial-Python SDK 在MCP工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | metorial-python |
| 原始描述 | 开源MCP工具:Official Python SDK for the Metorial API 🐍 📡。⭐11 · Python |
| Topics | PythonSDKMCP |
| GitHub | https://github.com/metorial/metorial-python |
| License | MIT |
| 语言 | Python |
收录时间:2026-06-04 · 更新时间:2026-06-04 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端