内容
ie_mcp
使用 ie_mcp 服务器可以使工业生态学软件包(尤其是 Brightway)的编码更加容易。它指导 GitHub Copilot 访问适合您问题的正确软件包文档,从而避免混合软件包版本、错误引用构答案。
MCP(模型上下文协议)服务器通过其文档解释工业生态学 Python 软件包。直接在 VS Code 中询问已注册软件包的任何问题 — 安装、使用、API、概念等。
MCP 服务器是 Copilot 和受信任的外部信息之间的桥梁。在 VS Code 代理模式下,Copilot 可以调用此服务器来检查软件包文档、源代码和版本,然后再回答。
**当前支持的软件包:** 完整的 **Brightway 生命周期评估生态系统**,以及其他工业生态学工具 — **共 56 个软件包**(请参见下面的 [Brightway 生态系统](#brightway-生态系统) 和 [其他软件包](#其他软件包))
## 为什么?
模工作,您需要可靠的帮助来匹配您的真实环境和软件包版本。该服务器为单个函数和完整的工业生态学软件包工作流程提供环境和版本相关的解释。这样就不必浏览软件包文档并检查其 GitHub 页面。Copilot软件包信息,并为正在使用的确切软件包版本获取/编码帮助。
## 示例问题
- “如何从设置到第一个结果在 Brightway 中进行基本 LCA?”
- “如何使用前提条件进行预期 场景?”
- “如何使用函数 [...]?”
- “解释在我的环境中当前安装的软件包版本中,函数接受哪些参数。”
- ...
---
## 先决条件
在您的环境中运行以下命令:
```bash
pip install "mcp[cli]>=1.0.0" "httpx>=0.27.0" "beautifulsoup4>=4.0" "markdownify>=0.13.0"
```
---
## 设置
### 1. 克隆仓库
```bash
git clone https:///JonasKlimt/ie_mcp.git
cd ie-mcp
```
### 2. 连接到您的 AI 客户端
#### VS Code(Copilot 代理模式)
##### 1:在克隆的仓库(成为您的本地仓库 mcp 服务器
`.vscode/mcp.json` 文件已经配置好。打开 **此文件夹** 作为您的 VS Code 工作区根目录,Copilot 代理模式会自动拾取服务器 — 无启动。如果您只想获得问题的答案,建议使用此方法。
##### 选项 2:在您的项目中使用 mcp 服务器
如果您想在项目中使用服务器来回答问题并帮助您编码,则需要将以下内容添加到您的项目中。服务器仍将在本地克隆的仓库中运行,但您可以在项目中访问它。
> **其他工作区/项目:** 要从其他项目使用服务器,请将其添加到您的 VS Code 用户设置(`settings.json`)中,指定绝对路径:
>
> ```json
> {
> "mcp.servers": {
> "ie-mcp": {
> "type": "stdio",
"command": "/绝对路径/到您的环境/python.exe "args": ["run", "/绝对路径/到cp/server.py"],
> "env": {
> ITHUB_TOKEN" : ""
> }
> }
> }
> }
> ```
### 3. 将服务器指向 环境
服务器检查您的 **已安装软件包版本** 以查找正确的文档和源代码。它只能看到在 `mcp.json`(或用户 `settings.json`)中指定的 Python 解释器中安装的软件包。
**您的工作环境:** 将 `command` 设置为与您用于工作的相同 Python 可执行文件。
例如:conda(`C:\Users\you\miniconda3\envs\bw\python.exe`),项目文件夹中的 venv(`./venv/Scripts/python.exe`)
为了获得最佳结果,还请在 `.github` 文件为您的仓库添加说明文件(`.github/copilot-in`)。说明文件是一套针对 Copilot 的特定(优先使用哪些工具、如何回答、最重要的上下文是什么)。这使得 ie_mcp 更高效,因为 Copilot 被引导一致地使用服务器并查询软件包文档/版本。
---
## 令牌(可选)
`search_source`get_function_source` 工具Hub REST API。没有令牌,GitHub 允许 **每小时 60 次请求** — 足以进行轻度使用。添加免费的个人牌可将限制提高到 **每小时 5000 次。
1. 前往 [github.com → 设置 → 开发者设置 → 个人访问令牌 → 令牌(经典)](https://github.com/settings/tokens)
2. 点击 **生成新令牌(经典)**,为其命名,时间 — **公共仓库不需要范围**。
3. 将添加到您的客户端配置中:
**VS Code**粘贴到 `.vscode/mcp.json` 中:
```json
{
"mcp.servers": {
"ie-mcp": {
"type": "stdio",
command": "/绝对路径/到您的环境/python.exe "args": ["run", "/绝对路径/到 ie/server.py"],
": {
"GITHUB_TOKEN" : "ghp_您的令牌"
}
}
}
}
```
> **重要:** 请勿在添加令牌后提交code/mcp.json`。空令牌版本已 为其他用户提供了一个可用的起点;您填写的版本仅供本地使用。
## 服务器工作原理
1. 它检查您的活动 Python 环境和已安装的软件包版本。
2. 需要时,它会获取官方文档页面并保持本地缓存以便快速重复使用。
对于版本特定的问题,它首先检查 GitHub 标签,然后获取匹配的源代码。
4. 如果有版本文档可用(例如在 ReadTheDocs 上),它也可以获取这些文档。
5版本文档不可用,它仍然会根据匹配的代码回答。
这使得答案可靠、版本正确,并基于官方文档或源代码。
---
## Brightway 生态系统
[Brightway](https://brightway.dev) 是一个开源 Python 框架,用于生命周期评估(LCA)。来自 [`brightway-lca` GitHub 组织](https://github.com/brightway-lca) 的所有软件包都已注册:
### 元软件包
| 软件包密钥 | PyPI | 描述 |
|---|---|---|
| `brightway25` | `pip install brightway25` | Brightway 2.5 — 当前稳定元软件包 |
| `brightway | `pip install brightway2` | Brightway 2 — 传统稳定元软件包 |
### Brightway 2.5 核心组件
这些是 `pip install brightway25` 安装的直接依赖项:
| 软件包密钥 | PyPI 名称 | 角色 |
|---|---|---|
| `bw2data` | bw2data | 项目和数据库管理 |
| `bw2calc` | bw2calc | LCA 矩阵计算 |
| `bw2io` | bw2io | 导入/导出(ecoinvent、SimaPro、…) |
| `bw2analyzer` | bw2analyzer | 贡献分析和供应链遍历 |
| `bw2parameters` | bw2parameters | 参数存储和公式求值 |
| `bw_processing` | bw_processing | 结构化 NumPy 数据包 |
| `matrix_utils` | matrix_utils | 从数据包构建 MappedMatrix |
| `bw_migrations` | bw_migrations | ecoinvent 版本之间的迁移文件 |
| `bw_simapro_csv` | bw_simapro_csv | SimaPro CSV 解析 |
| `ecoinvent_interface` | ecoinvent_interface | 程序化 ecoinvent 下载 |
|ifunctional` | multifunctional | 多输出/分配| `randonneur`andonneur | 灵活的数据集转换引擎 |
| `randonneur_data` | randonneur_data | randonneur 转换数据文件 |
| `stats_arrays` | stats_arrays | 不确定参数数组和蒙特卡罗 |
mrio_common_metadata` | mrio_common MRIO 数据包模式 |
### 其他 brightway-lca 软件包
| 软件包密钥 | 描述 |
|---|---|
| `bw_temporalis` | 时间显式 LCA(Brightway 2.5) |
|_timex` |时间显式 LCA |
dynamic_characterization` | 动态(时间依赖)特征因子 |
| `bw_graph_tools` | 供应链图遍历实用程序 |
| `bw_exio | EXIOBASE MRIO 导入 |
bw_recipe_2016` | ReCiPe 2016 LCIA 方法 |
| `bw_aggregation` | 聚合过程支持 |
| `bw_campaigns` | 命名数据包活动管理 |
| `bw_hestia_bridge` | HESTIA API接 |
| `bw_interface_schemas` | Pydantic 接口模式 |
| `bw_simple_graph` | 轻量级图后端(无 bw2data) |
| `edge_of_the_world` | 实验性后端,用于更丰富的交换描述,超出标准矩阵结构 |
| `brightway2_regional` | 区域化 LCA 计算 |
| `brightway_olca` | openLCA IPC |
| `brightway_hybrid` | 混合 IO/过程 LCA |
| `ecoinvent_migrate` | Randonneur 迁移文件生成器 |
| `pedigree_matrix` | 谦逊矩阵不确定性适配 |
| `pyecospold` | EcoSpold1/2 XML Python 往返 `pyilcd` | ILCD XML Python 往返 |
| `simapro_ecoinvent_elementary_flows` | SimaPro ecoinvent 基本流动映射 |
| `simple_regional` | 轻量级区域化 LCA |
| `brightway2_speedups` | BW2 的 Cython 性能扩展 |
| `brightway2_ui` | Brightway2 的 CLI 工具 |
---
## 其他软件包
### LCA 工具
| 软件包密钥 | GitHub | 文档 | 描述 |
|---|---|---|---|
| `edges` | [edges](https://github.com/Laboratory-for-Energy-Systems-Analysis/edges) | [readthedocs](https://edges.readthedocs.io/en/stable/) | 基于边的 LCIA,用于 Brightway:应用于交换的上下文敏感特征因子,而不仅仅是流动。包括 AWARE 2.0、ImpactWorld+、GeoPolRisk、GLAM3。 |
| `lca_algebraic` | [lca_algebraic](https://github.com/oie-mines-paristech/lca_algebraic) | [readthedocs](https://lca-algebraic.readthedocs.io/en/stable/) | 参数 LCA 库存,快速蒙特卡罗和 Sobol 敏感性分析,使用 Sympy 表达式。构建于 Brightway2/2.5 之上。 |
| `pathways` | [pathways](https://github.com/polca/pathways) | [readthedocs](https://pathways.readthedocs.io/en/latest/index.html) | 用于 LCI 数据集和工作流的场景驱动转换,设计用于预期和基于路径的 LCA 用例。 |
| `regioinvent` | [Regioinvent](https://github.com/CIRAIG/Regioinvent) | GitHub README | 通过将其连接到 BACI 贸易数据库,自动将 ecoinvent 区域化,创建国家生产过程和消费市场。 |
### 材料流动分析(MFA)
| 软件包密钥 | GitHub | 文档 | 描述 |
|---|---|---|---|
| `flodym` | [flodym](https://github.com/piam/flodym) | [readthedocs](https://flodym.readthedocs.io/en/latest/) | 灵活的开放动态材料系统模型 — 具有维度感知数组(FlodymArray)、库存积累和年龄队列跟踪以及 Pydantic 类型系统设置的 Python 库。ODYM 的改编。 |
| `odym` | [ODYM](https.com/IndEcol/ODYM) | [readthedocs](https://odym.readthedocs.io/en/latest/) | 开放动态材料系统模型 — 具有基于对象的系统描述和动态库存建模的 Python 动态材料流动分析框架。 |
| `recc_odym` | [RECC-ODYM](https://github.com/IndEcol/RECC-ODYM) | GitHub README | 建立在 ODYM 上的资源效率-气候变化缓解模型。跨 SSP 场景的车辆和建筑物的动态 MFA;评估 10 种材料效率策略。 |
### 环境扩展输入输出分析
| 软件包密钥 | GitHub | 文档 | 描述 |
|---|---|---|---|
| `pymrio` | [pymrio](https://github.com/IndEcol/pymrio) | [readthedocs](https://pymrio.readthedocs.io/en/latest/) | 多区域输入输出(EE MRIO)分析:自动下载和解析 EXIOBASE、WIOD、EORA26、OECD、GLORIA;计算足迹、贸易体现的影响。 |
---
## 添加新软件包
如果您缺少任何软件包,请告诉我们!
您也可以自己添加额外的软件包:
1. 使用 `__init__.py` 创建 `packages/{name}/`。
2. 使用 `METADATA` 字典创建 `packages/{name}/metadata.py`。复制 `packages/premise/metadata.py` 作为模板 — 关键字段为:
- `name`、`description`、`github_url`、`github_repo`、`readthedocs_slug`、`docs_url`、`install`、`sections`
- 每个部分都需要 `id`、`title`、`url`、`description`。
3. 运行获取脚本:`python scripts/fetch_docs.py --package {name}`
4. 重启服务器 — 新软件包将自动发现。
不需要修改 `server.py` 或任何核心文件。
贡献欢迎!
---
## 许可证
BSD-3-Clause