Skip to content

Commit 5433513

Browse files
authored
Merge pull request #159 from ks6088ts-labs/feature/issue-158_mcp-servers
add a custome mcp server to tool call agent
2 parents c137f2b + 22ed37a commit 5433513

File tree

7 files changed

+349
-197
lines changed

7 files changed

+349
-197
lines changed

.vscode/mcp.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"servers": {
3+
"math_server": {
4+
"command": "uv",
5+
"args": ["run", "python", "template_langgraph/mcps/math_server.py"]
6+
},
37
"playwright": {
48
"command": "npx",
59
"args": ["-y", "@playwright/mcp@latest", "--caps=vision"]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ info: ## show information
1414

1515
.PHONY: install-deps-dev
1616
install-deps-dev: ## install dependencies for development
17-
uv sync --all-extras
17+
uv sync --all-groups
1818
uv run pre-commit install
1919

2020
.PHONY: install-deps

pyproject.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ docs = [
4747
"mkdocs-material>=9.6.14",
4848
"mkdocs-static-i18n>=1.3.0",
4949
]
50-
51-
[tool.uv]
52-
dev-dependencies = [
50+
dev = [
5351
"coverage>=7.8.0",
5452
"jupyterlab>=4.4.2",
5553
"langgraph-cli[inmem]>=0.3.6",

template_langgraph/mcps/__init__.py

Whitespace-only changes.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from mcp.server.fastmcp import FastMCP
2+
3+
from template_langgraph.loggers import get_logger
4+
5+
logger = get_logger(__name__)
6+
logger.setLevel("DEBUG")
7+
8+
mcp = FastMCP("Math")
9+
10+
11+
@mcp.tool()
12+
def add(a: int, b: int) -> int:
13+
"""Add two numbers"""
14+
return a + b
15+
16+
17+
@mcp.tool()
18+
def multiply(a: int, b: int) -> int:
19+
"""Multiply two numbers"""
20+
return a * b
21+
22+
23+
if __name__ == "__main__":
24+
logger.info("Starting Math MCP server...")
25+
mcp.run(transport="stdio")

template_langgraph/tools/mcp_tool.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def __init__(
3131
if settings is None:
3232
settings = get_mcp_settings()
3333
self.settings = settings
34+
self.client = None
3435

3536
def get_tools(self) -> list[BaseTool]:
3637
if self.settings.mcp_config_path == "":
@@ -39,6 +40,6 @@ def get_tools(self) -> list[BaseTool]:
3940
config = json.load(f)
4041
for _, value in config["servers"].items():
4142
value["transport"] = "stdio"
42-
client = MultiServerMCPClient(config["servers"])
43-
tools = asyncio.run(client.get_tools())
44-
return tools
43+
self.client = MultiServerMCPClient(config["servers"])
44+
self.tools = asyncio.run(self.client.get_tools())
45+
return self.tools

uv.lock

Lines changed: 314 additions & 190 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)