bash展开代码import asyncio
import json
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def call_newsnow_mcp():
    """调用 newsnow MCP 获取知乎热门新闻"""
    
    # 1. 配置 MCP 服务器参数
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "newsnow-mcp-server"],
        env={"BASE_URL": "http://101.126.150.28:9044"}
    )
    
    # 2. 连接到 MCP 服务器
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # 3. 初始化会话
            await session.initialize()
            
            # 4. 调用工具获取知乎新闻
            result = await session.call_tool(
                name="get_hottest_latest_news",
                arguments={
                    "id": "zhihu",
                    "count": 10
                }
            )
            
            # 5. 打印结果
            print("=" * 50)
            print("知乎热门新闻(前10条)")
            print("=" * 50)
            
            # 解析返回的内容
            for item in result.content:
                if hasattr(item, 'text'):
                    # 尝试解析 JSON
                    try:
                        news_data = json.loads(item.text)
                        print(json.dumps(news_data, indent=2, ensure_ascii=False))
                    except:
                        print(item.text)
# 运行
if __name__ == "__main__":
    asyncio.run(call_newsnow_mcp())


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!