一个统一的MCP(模型上下文协议)客户端库,使任何LLM能够连接到MCP服务器并构建具有工具访问权限的自定义代理。该库提供了一个高级Python接口,用于将与LangChain兼容的LLM连接到MCP工具,如网络浏览、文件操作等。
pip install -e ".[dev,anthropic,openai,e2b,search]"
import asyncio
from mcp_use import MCPClient
async def main():
# 使用配置初始化客户端
client = MCPClient()
# 连接到MCP服务器
await client.connect_to_server("playwright", {
"command": "npx",
"args": ["@playwright/mcp@latest"]
})
# 使用工具
tools = await client.get_available_tools()
result = await client.call_tool("browse_web", {"url": "https://example.com"})
print(result)
if __name__ == "__main__":
asyncio.run(main())
from mcp_use.agents import MCPAgent
from langchain_openai import ChatOpenAI
# 创建LLM
llm = ChatOpenAI(model="gpt-4")
# 使用MCP工具创建代理
agent = MCPAgent(
llm=llm,
config_path="mcp_config.json"
)
# 使用代理
response = await agent.run("浏览example.com并总结内容")
print(response)
创建一个mcp_config.json文件:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"],
"env": { "DISPLAY": ":1" }
},
"filesystem": {
"command": "python",
"args": ["-m", "mcp_server_filesystem", "/path/to/files"]
}
}
}
该库包含一个先进的令牌计数系统:
from mcp_use.token_counting import TokenCountingFactory
# 创建令牌计数器
counter = TokenCountingFactory.create_counter(
provider="openai",
model="gpt-4",
openai_api_key="your-key"
)
# 计算令牌
usage = await counter.count_tokens(messages)
print(f"输入: {usage.input_tokens}, 输出: {usage.output_tokens}")
# 创建虚拟环境
python -m venv env
source env/bin/activate # 在Windows上: env\Scripts\activate
# 为开发安装
pip install -e ".[dev,search]"
# 运行所有测试
pytest
# 使用覆盖率运行
pytest --cov=mcp_use --cov-report=html
# 运行特定类型的测试
pytest tests/unit/ # 单元测试
pytest tests/integration/ # 集成测试
# 格式化和检查
ruff check --fix
ruff format
# 类型检查
mypy mcp_use/
from mcp_use.agents import MCPAgent
from langchain_anthropic import ChatAnthropic
agent = MCPAgent(
llm=ChatAnthropic(model="claude-3-sonnet-20240229"),
config={
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
)
result = await agent.run("查找有关AI发展的最新新闻")
config = {
"mcpServers": {
"filesystem": {
"command": "python",
"args": ["-m", "mcp_server_filesystem", "./documents"]
}
}
}
agent = MCPAgent(llm=your_llm, config=config)
result = await agent.run("分析项目中的所有Python文件")
config = {
"mcpServers": {
"web": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
},
"files": {
"command": "python",
"args": ["-m", "mcp_server_filesystem", "./data"]
},
"database": {
"url": "http://localhost:8080/mcp"
}
}
}
disallowed_tools限制工具访问此项目根据MIT许可证发布 - 查看LICENSE文件获取详细信息。
对于问题和疑问: