-
-
Notifications
You must be signed in to change notification settings - Fork 106
Description
I've been working with MCP-Bridge and ran into a frustrating issue where everything seems to work, but doesn't actually complete the job. When I use the /v1/chat/completions endpoint, MCP-Bridge successfully finds my tools, the LLM generates the right tool calls, but then... nothing. The tools never get executed and I just get back the raw tool calls instead of actual results.
The weird part? The direct tool API works perfectly. So I know my MCP servers are fine and my tools work correctly.
My setup
I'm running this on Kubernetes with:
MCP-Bridge Version: 0.5.1
Inference Engine: vLLM 0.9.2.dev129+gdac8cc49f.d20250617
Model: solidrust/Hermes-2-Pro-Llama-3-8B-AWQ (quantized)
Tool Call Parser: --tool-call-parser=hermes
MCP Server: Custom filesystem server using FastMCP
Configuration
Here's my MCP-Bridge config:
json{
"inference_server": {
"base_url": "http://192.168.5.10:30800/v1",
"api_key": "None"
},
"mcp_servers": {
"filesystem": {
"command": "python3",
"args": ["/app/src/mcp_server_filesystem.py", "/shared"]
}
},
"network": {
"host": "0.0.0.0",
"port": 8000
},
"logging": {
"log_level": "INFO"
}
}
And my VLLM setup:
vllm serve solidrust/Hermes-2-Pro-Llama-3-8B-AWQ \
--host=0.0.0.0 \
--port=8000 \
--quantization=awq \
--served-model-name=hermes-2-pro-8b \
--enable-auto-tool-choice \
--tool-call-parser=hermes \
--trust-remote-code
What I expected vs happened
I thought this would work like the OpenAI API - I send a chat message, the LLM decides it needs to use a tool, MCP-Bridge executes that tool, and I get back a complete response with the actual results.
Instead, I get back just the tool call itself, like the LLM is saying "I want to call this function" but nobody actually presses the button...
This works perfectly (direct tool API):
curl -X POST "http://localhost:8000/mcp/tools/list_directory/call" \
-H "Content-Type: application/json" \
-d '{"path": "mcp"}' | jq .
response:
{
"_meta": null,
"content": [
{
"type": "text",
"text": "{'name': 'config.json', 'type': 'file', 'size': 346, 'modified': '2025-06-19 13:43:48', 'path': 'mcp/config.json'}"
}
],
"isError": false
}
greaat! My filesystem tool works and returns the actual directory contents
This doesn't work:
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "hermes-2-pro-8b",
"messages": [
{
"role": "user",
"content": "List the contents of the mcp directory"
}
],
"tool_choice": "required",
"stream": false
}' | jq .
response
{
"id": "chatcmpl-cfcb8863be734027a3ddd1104e3abcde",
"choices": [{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "",
"tool_calls": [
{
"id": "chatcmpl-tool-a0fdd5d7c571404bb5efe7c08bfcb097",
"type": "function",
"function": {
"name": "list_directory",
"arguments": "{\"path\": \"mcp\"}"
}
}
],
"role": "assistant"
}
}],
"created": 1750434524,
"model": "hermes-2-pro-8b",
"usage": {
"completion_tokens": 20,
"prompt_tokens": 17,
"total_tokens": 37
}
}
See the problem? I get the tool call, but no execution, no results, no final answer. It's like getting a recipe that says "Step 1: Call the chef" and then just... stops there.
tools discovery works mcp/tools list al my tools available ,VLLM logs show it's creating the right tool calls with the correct parameters.MCP-Bridge never executes them,looking at MCP-Bridge logs, I see:
Processing request of type ListToolsRequest
INFO: POST /v1/chat/completions HTTP/1.1" 200 OK
It looks like MCP-Bridge is doing the first part of the job (tool injection and forwarding to the LLM) but missing the second part (actually executing the tools and completing the conversation).
The flow should be:
Get chat request -works
Inject MCP tools works
Send to VLLM works
Get tool calls back works
Execute the tool calls -this part is broken
Send results back to VLLM -never happens
Return final response -- never happens
I know this is a pretty detailed bug report, but I wanted to be thorough since this seems like a core functionality issue that probably affects anyone trying to use MCP-Bridge with tool-calling models. Let me know if you need any more details or want me to test anything specific!, i am not sure if i am doing it correct , any super heroes... that can help me figure out??