LMCP Tool Builder
A Python library for discovering, building and loading tools from LMCP (Language Model Context Protocol) servers.
Features
- Tool Discovery: Automatically discover tools from LMCP servers
- Local Caching: Cache tools locally for offline use
- Auto Update: Configurable auto-update behavior
- Tool Testing: Built-in testing functionality for discovered tools
- Easy Integration: Simple API for integrating with your applications
Installation
pip install lmcp-tool-builder
Quick Start
from lmcp_tool_builder import LMCPToolBuilder
import os
# Create a tool builder instance
builder = LMCPToolBuilder(
server_url="http://your-lmcp-server:8000",
api_key=os.getenv("LMCP_API_KEY"),
local_tools_file="bot_tools.py",
debug=True,
auto_update=True
)
# Build and load tools
tools = builder.build_and_load_tools()
# Use the tools
for tool in tools:
print(f"Tool: {tool.__name__}")
Configuration
Environment Variables
Create a .env file in your project:
LMCP_API_KEY=your_api_key_here
LMCP_LOCAL_TOOLS_FILE=bot_tools.py
LMCPToolBuilder Parameters
server_url: URL of the LMCP server (default: "http://localhost:8000")api_key: API key for authentication (default: "")local_tools_file: Path to local tools cache file (default: "bot_tools.py")debug: Enable debug output (default: False)auto_update: Auto-update tools from server (default: False)
API Reference
LMCPToolBuilder Class
Methods
discover_tools(): Discover tools from LMCP server or local cachebuild_tools_module(server_tools): Build a Python module from server toolssave_tools_module(module_code): Save module to local fileload_tools_from_module(): Load tools from local modulebuild_and_load_tools(): Main method to build and load toolstest_tools(tools): Test loaded tools with sample inputs
Example Usage
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from lmcp_tool_builder import LMCPToolBuilder # lmcp_tool_builder
import asyncio
import os
from dotenv import load_dotenv
load_dotenv()
# 到lmcp平台注册创建应用、绑定工具、获得api_key(略)
print(f'[LMCP] 开始更新工具...')
# 创建工具构建器
builder = LMCPToolBuilder(
server_url="http://aicity.wang:8000",
api_key=os.getenv("aca8942ed1b43ab16f796eb223db10dc12edaa0c3fad7d41b85215bcb6aceefb"),
local_tools_file=os.getenv("LMCP_LOCAL_TOOLS_FILE", "bot_tools.py"),
debug=True,
auto_update=False
)
# 构建并加载工具
tools = builder.build_and_load_tools()
# 构建agent
agent = create_agent(
model=ChatOpenAI(
model="deepseek-chat",
api_key="your api key",
base_url="https://api.deepseek.com/v1"
),
tools=tools
)
# 异步流式输出
async def async_stream_agent():
async for message, metadata in agent.astream(
{"messages": [("user", "你必须使用工具,异步计算2+8=?告诉我你使用哪工具")]},
stream_mode="messages"
):
# 实时打印 Token
if message.content:
print(message.content, end="", flush=True)
# 同步流式输出
def stream_agent():
for token, metadata in agent.stream(
{"messages": [{"role": "user", "content": "1+2=?"}]},
stream_mode="messages" #update
):
if token.content:
print(token.content, end="", flush=True)
if __name__ == "__main__":
stream_agent()
asyncio.run(async_stream_agent())
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/example/lmcp-tool-builder.git
cd lmcp-tool-builder
# Install in development mode
pip install -e .
Running Tests
python -m pytest tests/
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lmcp_tool_builder-0.1.4.tar.gz
(17.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lmcp_tool_builder-0.1.4.tar.gz.
File metadata
- Download URL: lmcp_tool_builder-0.1.4.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b81926fdad134f20c357c833d9140eb9592d7ac1c4b23093f13cec0142052ef9
|
|
| MD5 |
6e22bf381cdda8a88fd187d8f7125f50
|
|
| BLAKE2b-256 |
ddce18f857201bf30285a01bf2d63acc4167744cdcdb0ae91b51db31ae56da38
|
File details
Details for the file lmcp_tool_builder-0.1.4-py3-none-any.whl.
File metadata
- Download URL: lmcp_tool_builder-0.1.4-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e28cb0d5ebfba55299a1d782cbb2fdab57332f96460660aa2ea798e8eb31f27f
|
|
| MD5 |
29ae23909e55bcaba76eb4a0ea16e27e
|
|
| BLAKE2b-256 |
870b686ae2c5ea15557771bcaa06effcc76db7f5239948816c1a761947836fb8
|