P

PypReader-MCP

fanswan/PypReader-MCP
0 Stars 13 次浏览 更新于 2026-08-23

一个MCP-Server,可以读取Python包的内容,允许大型语言模型(LLMs)和其他AI代理检查指定环境中的Python包内容。它提供了检索包描述、列出文件结构和读取源代码的工具。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "PypReader-MCP": {
      "args": [
        "--from",
        "git+https://github.com/zakahan/pypreader-mcp.git",
        "pypreader-mcp"
      ],
      "command": "uvx",
      "env": {
        "CURRENT_LOGGING_LEVEL": "INFO",
        "CURRENT_PYTHON_PATH": "\u003cyour-python-path\u003e"
      }
    }
  }
}

该服务需要配置环境变量:CURRENT_LOGGING_LEVEL、CURRENT_PYTHON_PATH

服务介绍

pypreader-mcp

English | 简体中文

Python Version

一个用于读取 Python 包内容的 MCP 服务器。该服务器允许大型语言模型(LLMs)和其他 AI 代理检查指定环境中的 Python 包内容。

概述

pypreader-mcp 在 AI 模型和本地 Python 环境之间充当桥梁。通过 MCP 暴露一组工具,它使 AI 能够以编程方式浏览已安装的包、查看其文件结构并读取其源代码。这对于代码分析、依赖项检查和自动化编程辅助等任务非常有用。

为什么要构建这个?

当我使用像 Cursor 或 Trae 这样的集成 AI 的编程 IDE 时,我总是发现当前使用的模型不知道我需要的第三方库。

但有时它们会假装知道,并且会生成一堆无法描述的东西;其他时候它们会在网上搜索,但结果大多不好,很难找到任何有用的信息。

所以我创建了这个 MCP 服务。它可以从官方网站 pypi.org 读取文档,或者从与你的 Python 对应的 site-packages 环境中读取源代码,从而更直接地了解你想要使用的第三方库的内容。

功能

该服务器为 MCP 客户端提供以下工具:

  • get_pypi_description(package_name: str): 从 PyPI 获取包的官方描述。
  • get_package_directory(package_name: str): 列出指定已安装包的整个文件和目录结构。
  • get_source_code_by_path(package_path: str): 获取包内特定文件的完整源代码。
  • get_source_code_by_symbol(package_path: str, symbol_name: str): 获取指定符号(函数、类等)的定义(代码片段)。

使用方法

此工具设计为在基于 AI 的环境中作为 MCP 服务器使用,例如 CursorTrae

配置

在你的 AI 环境的 MCP 服务器配置中,添加一个新的服务器,并设置如下参数。这允许 AI 直接从其 Git 仓库使用 uvx 运行服务。

json
{
"mcpServers": {
"PypReader": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/zakahan/pypreader-mcp.git",
"pypreader-mcp"
],
"env": {
"CURRENT_PYTHON_PATH": "",
"CURRENT_LOGGING_LEVEL": "INFO"
}
}
}
}

MCP 服务器参数

在你的 AI 环境中配置 MCP 服务器时,可以指定以下环境参数:

  • CURRENT_PYTHON_PATH: 指定目标包安装环境的 Python 可执行文件路径。如果未提供,则默认为运行服务器的 Python 可执行文件。你可以通过激活项目的 Python 环境并在终端中运行 which python 来找到正确的路径。
  • CURRENT_LOGGING_LEVEL: 设置服务器的日志级别。选项包括 DEBUG, INFO, WARNING, ERROR, CRITICAL。默认值为 INFO

如果你使用 Python 虚拟环境来配置你的 Python 项目,通常需要根据需要修改 python_path 以切换到指定的 Python 环境。

AI 编码示例

以 Trae 为例。截至 2025-07-02,doubao-seed-1.6 模型并不知道 fastmcp 包(实际上,大多数模型也不认识)。在正常情况下,它要么假装知道并输出一堆混乱、无法描述的错误内容(甚至认为我在谈论 FastAPI),要么进行笨拙的搜索并找到各种杂乱无章的信息。这次,我创建了一个配备了该项目mcp-server的Trae代理。结果如下:Trae能够理解我的项目,然后编写一个fastmcp服务来完成我的任务。

这是Trae完成我请求的任务的整个过程

trae_examples

这些是工具调用的具体细节

tools

许可证

本项目采用MIT许可证。详情请参阅LICENSE文件。

最新更新?

  • 2025-07-04: 重写了get_source_code_by_symbol工具,修复了它无法读取属于子包的类或函数的问题。

下一步计划?

  1. 解决python-package-name与实际路径不一致的问题,例如,包名google-adk的实际路径为google/adk,实际上被导入为google.adk
  2. 为代理设计合适的提示词。(Trae版本见这里

相关 MCP 服务