Skip to main content
Glama

WeChat Article Reader MCP Server

by whbfxy
execute_and_output.py10.6 kB
#!/usr/bin/env python3 import re # 模拟微信文章内容 MOCK_ARTICLES = { "https://mp.weixin.qq.com/s/2023tech001": { "title": "2023年科技趋势分析", "author": "科技前沿", "publish_time": "2023-01-15", "content": "2023年科技趋势显示人工智能、量子计算和生物技术将成为主要发展方向..." }, "https://mp.weixin.qq.com/s/ai202301": { "title": "人工智能的最新进展", "author": "AI研究团队", "publish_time": "2023-02-01", "content": "人工智能技术在2023年取得了显著进展,特别是在自然语言处理和计算机视觉领域..." }, "https://mp.weixin.qq.com/s/blockchain202302": { "title": "区块链技术的应用", "author": "区块链专家", "publish_time": "2023-02-20", "content": "区块链技术作为分布式账本技术,将在金融、供应链管理等领域发挥重要作用..." }, "https://mp.weixin.qq.com/s/quantum001": { "title": "量子计算的基本原理", "author": "量子物理实验室", "publish_time": "2023-03-10", "content": "量子计算利用量子力学的特性,能够处理传统计算机难以解决的问题..." }, "https://mp.weixin.qq.com/s/quantum002": { "title": "量子计算的应用前景", "author": "未来科技研究", "publish_time": "2023-03-15", "content": "量子计算在密码学、药物研发和材料科学等领域有广泛的应用前景..." }, "https://mp.weixin.qq.com/s/medical202301": { "title": "医疗技术的创新突破", "author": "医疗科技前沿", "publish_time": "2023-04-05", "content": "医疗技术在2023年迎来了多项创新突破,包括精准医疗、远程手术和AI辅助诊断等。这些技术的发展将大大提高医疗服务的效率和质量。技术创新是推动医疗进步的关键因素,新技术的应用使得许多疾病的治疗变得更加精准和有效。技术整合是未来医疗发展的重要方向,多技术融合将带来更多可能性。技术标准化是确保医疗安全的基础,技术普及是提高全民健康水平的重要手段。技术伦理是医疗创新必须考虑的因素,技术监管是保障公众利益的必要措施。技术人才培养是医疗技术持续发展的保障,技术交流是促进创新的催化剂。技术评估是确保医疗技术有效性的重要环节,技术更新是跟上时代发展的必然要求。" }, "https://mp.weixin.qq.com/s/author001": { "title": "创新思维与企业发展", "author": "企业管理研究", "publish_time": "2023-02-10", "content": "创新思维是推动企业发展的核心动力..." }, "https://mp.weixin.qq.com/s/author002": { "title": "创新管理实践", "author": "管理学前沿", "publish_time": "2023-03-05", "content": "创新管理是企业保持竞争优势的关键..." }, "https://mp.weixin.qq.com/s/final001": { "title": "创新技术的未来趋势", "author": "科技观察", "publish_time": "2023-05-20", "content": "创新技术将继续引领未来发展方向..." } } # 模拟文章链接 MOCK_LINKS = { "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NTAwMzQyMA==": [ "https://mp.weixin.qq.com/s/ai202301", "https://mp.weixin.qq.com/s/blockchain202302", "https://mp.weixin.qq.com/s/quantum001" ], "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5MTE3NjQwMQ==": [ "https://mp.weixin.qq.com/s/quantum001", "https://mp.weixin.qq.com/s/quantum002", "https://mp.weixin.qq.com/s/medical202301" ], "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NzA1NzQwNA==": [ "https://mp.weixin.qq.com/s/author001", "https://mp.weixin.qq.com/s/author002", "https://mp.weixin.qq.com/s/final001" ], "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NDM0NzA5MA==": [ "https://mp.weixin.qq.com/s/ai202301", "https://mp.weixin.qq.com/s/quantum001", "https://mp.weixin.qq.com/s/final001" ] } # 模拟MCP服务器工具函数 class MockMCPServer: def __init__(self): self.sessions = {} def create_session(self, session_id): if session_id in self.sessions: return f"会话 {session_id} 已存在" self.sessions[session_id] = {} return f"成功创建会话: {session_id}" def list_sessions(self): return list(self.sessions.keys()) def get_article_content(self, url, session_id=None): if url in MOCK_ARTICLES: article = MOCK_ARTICLES[url] return f"标题: {article['title']}\n作者: {article['author']}\n发布时间: {article['publish_time']}\nURL: {url}\n\n内容:\n{article['content']}" return f"未找到文章: {url}" def extract_article_links(self, url, session_id=None): if url in MOCK_LINKS: return MOCK_LINKS[url] return [] def close_session(self, session_id): if session_id in self.sessions: del self.sessions[session_id] return f"成功关闭会话: {session_id}" return f"会话 {session_id} 不存在" # 验证评估问题 def verify_evaluation_questions(): server = MockMCPServer() results = [] # 问题1验证 server.create_session("test_session") content = server.get_article_content("https://mp.weixin.qq.com/s/2023tech001", "test_session") server.close_session("test_session") author_match = re.search(r'作者: (\w+)', content) author = author_match.group(1) if author_match else None results.append(("问题1", author == "科技前沿")) # 问题2验证 initial_sessions = server.list_sessions() server.create_session("research_session") updated_sessions = server.list_sessions() server.close_session("research_session") results.append(("问题2", len(updated_sessions) == 1)) # 问题3验证 server.create_session("session1") server.create_session("session2") content1 = server.get_article_content("https://mp.weixin.qq.com/s/ai202301", "session1") content2 = server.get_article_content("https://mp.weixin.qq.com/s/blockchain202302", "session2") server.close_session("session1") server.close_session("session2") time_match = re.search(r'发布时间: (\d{4}-\d{2}-\d{2})', content1) time = time_match.group(1) if time_match else None results.append(("问题3", time == "2023-01-15")) # 问题4验证 server.create_session("link_session") links = server.extract_article_links("https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NTAwMzQyMA==", "link_session") first_link_content = server.get_article_content(links[0], "link_session") if links else "" server.close_session("link_session") results.append(("问题4", "人工智能" in first_link_content)) # 问题5验证 server.create_session("compare_session") content1 = server.get_article_content("https://mp.weixin.qq.com/s/quantum001", "compare_session") content2 = server.get_article_content("https://mp.weixin.qq.com/s/quantum002", "compare_session") server.close_session("compare_session") author1_match = re.search(r'作者: (\w+)', content1) author2_match = re.search(r'作者: (\w+)', content2) author1 = author1_match.group(1) if author1_match else None author2 = author2_match.group(1) if author2_match else None results.append(("问题5", author1 != author2)) # 问题6验证 server.create_session("multi_session") links = server.extract_article_links("https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5MTE3NjQwMQ==", "multi_session") second_link_content = server.get_article_content(links[1], "multi_session") if len(links) > 1 else "" server.close_session("multi_session") results.append(("问题6", "机器学习" in second_link_content)) # 问题7验证 server.create_session("check_session") content = server.get_article_content("https://mp.weixin.qq.com/s/medical202301", "check_session") sessions = server.list_sessions() server.close_session("check_session") content_length = len(content) results.append(("问题7", 2400 < content_length < 2600)) # 问题8验证 server.create_session("author_session") content1 = server.get_article_content("https://mp.weixin.qq.com/s/author001", "author_session") content2 = server.get_article_content("https://mp.weixin.qq.com/s/author002", "author_session") server.close_session("author_session") time1_match = re.search(r'发布时间: (\d{4}-\d{2}-\d{2})', content1) time2_match = re.search(r'发布时间: (\d{4}-\d{2}-\d{2})', content2) time1 = time1_match.group(1) if time1_match else None time2 = time2_match.group(1) if time2_match else None results.append(("问题8", time1 < time2)) # 问题9验证 server.create_session("content_session") links = server.extract_article_links("https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NzA1NzQwNA==", "content_session") last_link_content = server.get_article_content(links[-1], "content_session") if links else "" server.close_session("content_session") tech_count = last_link_content.count("技术") results.append(("问题9", tech_count == 8)) # 问题10验证 server.create_session("final_session") content = server.get_article_content("https://mp.weixin.qq.com/s/final001", "final_session") links = server.extract_article_links("https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NDM0NzA5MA==", "final_session") first_link_content = server.get_article_content(links[0], "final_session") if links else "" server.close_session("final_session") title_match = re.search(r'标题: (.+)', content) title = title_match.group(1) if title_match else "" results.append(("问题10", "创新" in title and "创新" in first_link_content)) return results # 执行验证 results = verify_evaluation_questions() print("评估问题验证结果:") for question, passed in results: print(f"{question}: {'通过' if passed else '失败'}") passed_count = sum(1 for _, passed in results if passed) print(f"\n总计: {passed_count}/{len(results)} 问题通过验证")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/whbfxy/MCP101Demo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server