Skip to main content
Glama
o6-webwork

LLM Tool-Calling Assistant

by o6-webwork

This project connects a local LLM (e.g. Qwen) to tools such as a calculator or a knowledge base via the MCP protocol. The assistant automatically detects and calls these tools to help answer user queries.


๐Ÿ“ฆ Features

  • ๐Ÿ”ง Tool execution through MCP server

  • ๐Ÿง  Local LLM integration via HTTP or OpenAI SDK

  • ๐Ÿ“š Knowledge base support (data.json)

  • โšก Supports stdio and sse transports


Related MCP server: DocAgent-MCP

๐Ÿ—‚ Project Files

File

Description

server.py

Registers tools and starts MCP server

client-http.py

Uses aiohttp to communicate with local LLM

clientopenai.py

Uses OpenAI-compatible SDK for LLM + tool call logic

client-stdio.py

MCP client using stdio

client-see.py

MCP client using SSE

data.json

Q&A knowledge base


๐Ÿ“ฅ Installation

Requirements

Python 3.8+

Install dependencies:

pip install -r requirements.txt

requirements.txt

aiohttp==3.11.18
nest_asyncio==1.6.0
python-dotenv==1.1.0
openai==1.77.0
mcp==1.6.0

๐Ÿš€ Getting Started

1. Run the MCP server

python server.py

This launches your tool server with functions like add, multiply, and get_knowledge_base.

2. Start a client

Option A: HTTP client (local LLM via raw API)

python client-http.py

Option B: OpenAI SDK client

python client-openai.py

Option C: stdio transport

python client-stdio.py

Option D: SSE transport

Make sure server.py sets:

transport = "sse"

Then run:

python client-sse.py

๐Ÿ’ฌ Example Prompts

Math Tool Call

What is 8 times 3?

Response:

Eight times three is 24.

Knowledge Base Question

What are the healthcare benefits available to employees in Singapore?

Response will include the relevant answer from data.json.


๐Ÿ“ Example: data.json

[
  {
    "question": "What is Singapore's public holiday schedule?",
    "answer": "Singapore observes several public holidays..."
  },
  {
    "question": "How do I apply for permanent residency in Singapore?",
    "answer": "Submit an online application via the ICA website..."
  }
]

๐Ÿ”ง Configuration

Inside client-http.py or clientopenai.py, update the following:

LOCAL_LLM_URL = "..."
TOKEN = "your-api-token"
LOCAL_LLM_MODEL = "your-model"

Make sure your LLM is serving OpenAI-compatible API endpoints.


๐Ÿงน Cleanup

Clients handle tool calls and responses automatically. You can stop the server or client using Ctrl+C.


๐Ÿชช License

MIT License. See LICENSE file.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    A multi-tool MCP server that enhances local LLMs with web search, document reading, scholarly research, Wikipedia access, and calculator functions. Provides comprehensive tools for information retrieval and computation without requiring API keys by default.
    22
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables local document question-answering and retrieval via MCP, supporting multi-turn conversation, intent recognition, and tools for document search, Q&A, and summarization.
    5
    -
  • F
    license
    A
    quality
    D
    maintenance
    MCP server that connects LLM agents to a local LM Studio instance, enabling model management, OpenAI-compatible chat completions, text completions, and embeddings through a set of tools.
    9
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP-compatible clients to manage, run, and interact with local or cloud LLM models through exposed tools for listing, pulling, generating, chatting, embeddings, and web search/fetch. Supports Claude Desktop, Cline, and hybrid local/cloud setups.
    689 npm
    AGPL 3.0