6161 update_webex_webhook , delete_webex_webhook ,
6262)
6363
64- # Import version and error handling from common
65- from webex_bot_mcp .tools .common import MCP_SERVER_VERSION , MCP_SPEC_VERSION
64+ # Import version, error handling, and logging setup from common
65+ from webex_bot_mcp .tools .common import MCP_SERVER_VERSION , MCP_SPEC_VERSION , setup_logging , log_tool_call
66+ from webex_bot_mcp .config import get_config
6667
6768webex_access_token = os .getenv ("WEBEX_ACCESS_TOKEN" )
6869
70+ # Configure logging from environment before any tools run
71+ _cfg = get_config ()
72+ setup_logging (log_level = _cfg .log_level , log_format = _cfg .log_format , debug = _cfg .debug )
73+
6974
7075class WebexAuthMiddleware (BaseHTTPMiddleware ):
7176 """Enforce Bearer token auth on all MCP requests; expose /health unauthenticated."""
@@ -86,72 +91,76 @@ async def dispatch(self, request, call_next):
8691# Initialize FastMCP with a name for the bot
8792mcp = FastMCP ("Webex Bot MCP" )
8893
89- # Register all tools with FastMCP
94+ # Register all tools with FastMCP (wrapped with request/response logging)
95+ def _tool (func ):
96+ mcp .tool ()(log_tool_call (func ))
97+
98+
9099# Room management tools
91- mcp . tool () (list_webex_rooms )
92- mcp . tool () (create_webex_room )
93- mcp . tool () (update_webex_room )
94- mcp . tool () (get_webex_room )
95- mcp . tool () (delete_webex_room )
100+ _tool (list_webex_rooms )
101+ _tool (create_webex_room )
102+ _tool (update_webex_room )
103+ _tool (get_webex_room )
104+ _tool (delete_webex_room )
96105
97106# Space aliases (same functionality as rooms but with "space" terminology)
98- mcp . tool () (list_webex_spaces )
99- mcp . tool () (create_webex_space )
100- mcp . tool () (update_webex_space )
101- mcp . tool () (get_webex_space )
102- mcp . tool () (delete_webex_space )
107+ _tool (list_webex_spaces )
108+ _tool (create_webex_space )
109+ _tool (update_webex_space )
110+ _tool (get_webex_space )
111+ _tool (delete_webex_space )
103112
104113# Message management tools
105- mcp . tool () (send_webex_message )
106- mcp . tool () (send_webex_message_with_mentions )
107- mcp . tool () (list_webex_messages )
108- mcp . tool () (delete_webex_message )
109- mcp . tool () (update_webex_message )
110- mcp . tool () (get_webex_attachment_action )
114+ _tool (send_webex_message )
115+ _tool (send_webex_message_with_mentions )
116+ _tool (list_webex_messages )
117+ _tool (delete_webex_message )
118+ _tool (update_webex_message )
119+ _tool (get_webex_attachment_action )
111120
112121# Space message aliases
113- mcp . tool () (send_webex_space_message )
114- mcp . tool () (list_webex_space_messages )
122+ _tool (send_webex_space_message )
123+ _tool (list_webex_space_messages )
115124
116125# Adaptive card tools
117- mcp . tool () (send_webex_adaptive_card )
118- mcp . tool () (send_webex_space_adaptive_card )
119- mcp . tool () (build_webex_adaptive_card )
126+ _tool (send_webex_adaptive_card )
127+ _tool (send_webex_space_adaptive_card )
128+ _tool (build_webex_adaptive_card )
120129
121130# Membership management tools
122- mcp . tool () (list_webex_memberships )
123- mcp . tool () (add_webex_membership )
124- mcp . tool () (update_webex_membership )
125- mcp . tool () (delete_webex_membership )
131+ _tool (list_webex_memberships )
132+ _tool (add_webex_membership )
133+ _tool (update_webex_membership )
134+ _tool (delete_webex_membership )
126135
127136# Space membership aliases
128- mcp . tool () (list_webex_space_memberships )
129- mcp . tool () (add_webex_space_membership )
137+ _tool (list_webex_space_memberships )
138+ _tool (add_webex_space_membership )
130139
131140# People management tools
132- mcp . tool () (get_webex_me )
133- mcp . tool () (list_webex_people )
141+ _tool (get_webex_me )
142+ _tool (list_webex_people )
134143
135144# Team management tools
136- mcp . tool () (list_webex_teams )
137- mcp . tool () (get_webex_team )
138- mcp . tool () (update_webex_team )
139- mcp . tool () (delete_webex_team )
145+ _tool (list_webex_teams )
146+ _tool (get_webex_team )
147+ _tool (update_webex_team )
148+ _tool (delete_webex_team )
140149
141150# Team membership tools
142- mcp . tool () (list_webex_team_memberships )
143- mcp . tool () (add_webex_team_membership )
144- mcp . tool () (delete_webex_team_membership )
151+ _tool (list_webex_team_memberships )
152+ _tool (add_webex_team_membership )
153+ _tool (delete_webex_team_membership )
145154
146155# Diagnostic tools
147- mcp . tool () (webex_health_check )
156+ _tool (webex_health_check )
148157
149158# Webhook management tools
150- mcp . tool () (list_webex_webhooks )
151- mcp . tool () (create_webex_webhook )
152- mcp . tool () (get_webex_webhook )
153- mcp . tool () (update_webex_webhook )
154- mcp . tool () (delete_webex_webhook )
159+ _tool (list_webex_webhooks )
160+ _tool (create_webex_webhook )
161+ _tool (get_webex_webhook )
162+ _tool (update_webex_webhook )
163+ _tool (delete_webex_webhook )
155164
156165
157166# ========== RESOURCES ==========
0 commit comments