Skip to content

Commit 93454fa

Browse files
authored
feat: adding exception handling middleware for mcp server (#13)
1 parent d18cd10 commit 93454fa

File tree

6 files changed

+357
-43
lines changed

6 files changed

+357
-43
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description = "A MCP server providing OpenStack services for MCP clients"
55
readme = "README.md"
66
requires-python = ">=3.10"
77
dependencies = [
8-
"mcp[cli]>=1.12.0",
8+
"fastmcp>=2.11.0",
99
"openstacksdk>=4.6.0",
1010
"pydantic>=2.11.7",
1111
]

src/openstack_mcp_server/server.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
1-
from mcp.server.fastmcp import FastMCP
1+
from fastmcp.server import FastMCP
2+
from fastmcp.server.middleware.error_handling import ErrorHandlingMiddleware
3+
from fastmcp.server.middleware.logging import LoggingMiddleware
24
from openstack_mcp_server.tools import register_tool
35

46

57
def serve(transport: str, **kwargs):
68
"""Serve the MCP server with the specified transport."""
7-
mcp = FastMCP("openstack_mcp_server")
9+
mcp = FastMCP(
10+
"openstack_mcp_server",
11+
)
812

913
register_tool(mcp)
1014
# resister_resources(mcp)
1115
# register_prompt(mcp)
1216

17+
# Add middlewares
18+
mcp.add_middleware(ErrorHandlingMiddleware())
19+
mcp.add_middleware(LoggingMiddleware())
20+
1321
if transport == "stdio":
1422
mcp.run(transport="stdio", **kwargs)
1523
elif transport == "streamable-http":

src/openstack_mcp_server/tools/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mcp.server.fastmcp import FastMCP
1+
from fastmcp import FastMCP
22

33

44
def register_tool(mcp: FastMCP):
@@ -9,4 +9,4 @@ def register_tool(mcp: FastMCP):
99
from .nova_tools import NovaTools
1010

1111
NovaTools().register_tools(mcp)
12-
GlanceTools.register_tools(mcp)
12+
GlanceTools().register_tools(mcp)

src/openstack_mcp_server/tools/glance_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .base import get_openstack_conn
2-
from mcp.server.fastmcp import FastMCP
2+
from fastmcp import FastMCP
33

44

55
class GlanceTools:

src/openstack_mcp_server/tools/nova_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .base import get_openstack_conn
2-
from mcp.server.fastmcp import FastMCP
2+
from fastmcp import FastMCP
33

44

55
class NovaTools:

0 commit comments

Comments
 (0)