test_mcp.py•3.19 kB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
国考小助手 MCP 服务器测试脚本
"""
import asyncio
import json
async def test_mcp_tools():
"""测试 MCP 工具函数"""
# 导入 MCP 服务器模块
from mcp_server import (
filter_positions,
match_by_major,
personal_match,
get_position_detail,
get_statistics,
compare_positions
)
print("=" * 60)
print("🧪 开始测试国考小助手 MCP 服务器")
print("=" * 60)
# 测试 1: 统计信息
print("\n📊 测试 1: 获取统计信息")
print("-" * 40)
try:
result = await get_statistics(group_by="机关类别")
data = json.loads(result)
print(f"总岗位数: {data.get('total_positions', 'N/A')}")
print(f"总招考人数: {data.get('total_recruitment', 'N/A')}")
print("统计详情:")
for stat in data.get('statistics', [])[:5]:
print(f" - {stat}")
print("✅ 统计信息测试通过")
except Exception as e:
print(f"❌ 统计信息测试失败: {e}")
# 测试 2: 专业匹配
print("\n📚 测试 2: 专业匹配查询")
print("-" * 40)
try:
result = await match_by_major(major_keyword="计算机", max_results=5)
data = json.loads(result)
print(f"匹配到 {data.get('total_positions', 0)} 个岗位")
for pos in data.get('positions', [])[:3]:
print(f" - {pos.get('部门名称', 'N/A')} - {pos.get('招考职位', 'N/A')}")
print("✅ 专业匹配测试通过")
except Exception as e:
print(f"❌ 专业匹配测试失败: {e}")
# 测试 3: 多条件筛选
print("\n🔍 测试 3: 多条件智能筛选")
print("-" * 40)
try:
result = await filter_positions(
location="北京",
education="本科",
max_results=5
)
data = json.loads(result)
print(f"筛选到 {data.get('total_positions', 0)} 个岗位")
for pos in data.get('positions', [])[:3]:
print(f" - {pos.get('部门名称', 'N/A')} - {pos.get('工作地点', 'N/A')}")
print("✅ 多条件筛选测试通过")
except Exception as e:
print(f"❌ 多条件筛选测试失败: {e}")
# 测试 4: 个人条件匹配
print("\n👤 测试 4: 个人条件一键匹配")
print("-" * 40)
try:
result = await personal_match(
education="本科",
major="计算机",
political_status="共青团员",
work_years=0,
max_results=5
)
data = json.loads(result)
print(f"匹配到 {data.get('total_positions', 0)} 个可报考岗位")
for pos in data.get('positions', [])[:3]:
print(f" - {pos.get('部门名称', 'N/A')} - {pos.get('招考职位', 'N/A')}")
print("✅ 个人条件匹配测试通过")
except Exception as e:
print(f"❌ 个人条件匹配测试失败: {e}")
print("\n" + "=" * 60)
print("🎉 测试完成!")
print("=" * 60)
if __name__ == "__main__":
asyncio.run(test_mcp_tools())