11# server.py
2+ import logging
3+ import os
4+ import sys
5+ from datetime import datetime
26from mcp .server .fastmcp import FastMCP
37import requests
48
9+ # Configure logging
10+ log_dir = "logs"
11+ if not os .path .exists (log_dir ):
12+ os .makedirs (log_dir )
13+
14+ log_file = os .path .join (log_dir , f"server_{ datetime .now ().strftime ('%Y%m%d' )} .log" )
15+
16+ # Create formatters
17+ formatter = logging .Formatter ('%(asctime)s - %(levelname)s - %(message)s' )
18+
19+ # Create handlers
20+ file_handler = logging .FileHandler (log_file )
21+ file_handler .setFormatter (formatter )
22+
23+ # Configure root logger
24+ logging .basicConfig (
25+ level = logging .INFO ,
26+ format = '%(asctime)s - %(levelname)s - %(message)s' ,
27+ handlers = [file_handler ]
28+ )
29+
30+ # Get logger
31+ logger = logging .getLogger (__name__ )
32+
33+ # Test log message
34+ logger .info ("=== Logging system initialized ===" )
35+
536# Create an MCP server
637mcp = FastMCP ("Demo" )
738
1041@mcp .tool ()
1142def add (a : int , b : int ) -> int :
1243 """Add two numbers"""
13- return a + b
44+ logger .info (f"Function 'add' called with parameters: a={ a } , b={ b } " )
45+ result = a + b
46+ logger .info (f"Function 'add' returned: { result } " )
47+ return result
1448
1549
1650# Add a dynamic greeting resource
1751@mcp .resource ("greeting://{name}" )
1852def get_greeting (name : str ) -> str :
1953 """Get a personalized greeting"""
20- return f"Hello, { name } !"
54+ logger .info (f"Function 'get_greeting' called with parameter: name={ name } " )
55+ result = f"Hello, { name } !"
56+ logger .info (f"Function 'get_greeting' returned: { result } " )
57+ return result
2158
2259@mcp .tool ()
23- def request_wxread_gongzhonghao_articles (book_id : str ,token : str ) -> str :
60+ def request_wxread_gongzhonghao_articles (book_id : str , token : str ) -> str :
2461 """请求微信阅读公众号文章
2562 真实请求头参考:
2663
@@ -38,6 +75,8 @@ def request_wxread_gongzhonghao_articles(book_id: str,token: str) -> str:
3875 Accept-Encoding: gzip
3976
4077 """
78+ logger .info (f"Function 'request_wxread_gongzhonghao_articles' called with parameters: book_id={ book_id } , token={ '*' * len (token ) if token else 'None' } " )
79+
4180 host = "https://i.weread.qq.com"
4281
4382 headers = {
@@ -68,11 +107,18 @@ def request_wxread_gongzhonghao_articles(book_id: str,token: str) -> str:
68107 params = params
69108 )
70109 response .raise_for_status ()
71- return response .text
110+ result = response .text
111+ logger .info (f"Function 'request_wxread_gongzhonghao_articles' returned successfully with response length: { len (result )} ; content: { result [:100 ]} " )
112+ return result
72113 except requests .exceptions .RequestException as e :
73- return f"Error fetching articles: { str (e )} "
114+ error_msg = f"Error fetching articles: { str (e )} "
115+ logger .error (error_msg )
116+ return error_msg
74117
75118
76119def get_wxread_token ():
77120 """获取微信阅读token"""
78- return "fcMfiJf6"
121+ logger .info ("Function 'get_wxread_token' called" )
122+ token = "fcMfiJf6"
123+ logger .info (f"Function 'get_wxread_token' returned token: { '*' * len (token )} " )
124+ return token
0 commit comments