Skip to main content

LMCP Tool Builder - A tool for discovering, building and loading tools from LMCP servers

Project description

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 cache
  • build_tools_module(server_tools): Build a Python module from server tools
  • save_tools_module(module_code): Save module to local file
  • load_tools_from_module(): Load tools from local module
  • build_and_load_tools(): Main method to build and load tools
  • test_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.

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lmcp_tool_builder-0.1.4-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

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

Hashes for lmcp_tool_builder-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b81926fdad134f20c357c833d9140eb9592d7ac1c4b23093f13cec0142052ef9
MD5 6e22bf381cdda8a88fd187d8f7125f50
BLAKE2b-256 ddce18f857201bf30285a01bf2d63acc4167744cdcdb0ae91b51db31ae56da38

See more details on using hashes here.

File details

Details for the file lmcp_tool_builder-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for lmcp_tool_builder-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e28cb0d5ebfba55299a1d782cbb2fdab57332f96460660aa2ea798e8eb31f27f
MD5 29ae23909e55bcaba76eb4a0ea16e27e
BLAKE2b-256 870b686ae2c5ea15557771bcaa06effcc76db7f5239948816c1a761947836fb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page