diff --git a/ai/slackbot-mcp-client/slack-identity/requirements.txt b/ai/slackbot-mcp-client/slack-identity/requirements.txt index 95fdecc..9fa0893 100644 --- a/ai/slackbot-mcp-client/slack-identity/requirements.txt +++ b/ai/slackbot-mcp-client/slack-identity/requirements.txt @@ -1,5 +1,5 @@ httpx2==2.9.1 -mcp==1.28.1 +mcp==2.0.0 mypy==2.3.0 pytest==9.1.1 ruff==0.16.0 diff --git a/ai/slackbot-mcp-client/slack-identity/src/app.py b/ai/slackbot-mcp-client/slack-identity/src/app.py index b2b190b..7f61de6 100644 --- a/ai/slackbot-mcp-client/slack-identity/src/app.py +++ b/ai/slackbot-mcp-client/slack-identity/src/app.py @@ -1,8 +1,9 @@ import contextlib import os +from typing import Any -from mcp.server.fastmcp import Context, FastMCP -from mcp.server.session import ServerSession +from mcp.server import MCPServer +from mcp.server.mcpserver import Context from mcp.types import CallToolResult, TextContent, ToolAnnotations from slack_bolt import App from slack_bolt.adapter.starlette import SlackRequestHandler @@ -23,21 +24,21 @@ https://github.com/modelcontextprotocol/python-sdk#quickstart """ -mcp_server = FastMCP("Profile Card", stateless_http=True, json_response=True) +mcp_server = MCPServer("Profile Card") @mcp_server.tool( name="get_profile_card", title="Get Profile Card", description="Get a profile card for a Slack user by their user ID.", - annotations=ToolAnnotations(readOnlyHint=True), + annotations=ToolAnnotations(read_only_hint=True), ) async def get_profile_card( user_id: str, - ctx: Context[ServerSession, None], + ctx: Context, ) -> CallToolResult: - meta = ctx.request_context.meta - slack = (meta.model_extra or {}).get("slack", {}) if meta else {} + meta: dict[str, Any] = dict(ctx.request_context.meta or {}) + slack = meta.get("slack") or {} if not slack.get("user_id") or not slack.get("team_id"): return CallToolResult( @@ -155,7 +156,7 @@ async def lifespan(a): yield -mcp_app = mcp_server.streamable_http_app() +mcp_app = mcp_server.streamable_http_app(stateless_http=True, json_response=True) app = Starlette(