Name | runmcp-in-e2b JSON |
Version |
0.4.1
JSON |
| download |
home_page | None |
Summary | Add your description here |
upload_time | 2025-07-15 06:32:33 |
maintainer | None |
docs_url | None |
author | Goosezzy |
requires_python | >=3.10 |
license | MIT |
keywords |
automation
e2b
mcp
tool
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Run MCP Server in E2B Sandbox
### 项目发布地址:https://pypi.org/project/runmcp-in-e2b/
<br/>
- __MCP服务说明__
Run MCP Server in E2B Sandbox 是一个样例(目前未运行E2B),说明如何发布托管一个MCP Server。
- 支持stdio和sse两种模式:
- sse:默认模式,默认端口 18080,指定端口启动参数:--port xxx 指定
- stdio:启动参数:--transport stdio。
<br/>
- __开发环境和过程__
- 注册PYPI账号 https://pypi.org/ ,创建PYPI_TOKEN,发布需要用;export $PYPI_TOKEN 到环境变量
- 安装uv工具
- uv项目结果
- 建立项目目录runmcp_in_e2b,初始化,uv init (可以指定python版本),生成.venv
- 编写程序,需要按照uvx要求的结构:
- src/runmcp_in_e2b #项目目录
- test #可选
- pyprojct.toml #自动生成,除了自动生成,需要添加[build-system]和[project.scripts](uvx的启动入口)
- README.md #项目说明,必须有
- LICENSE #需要
- uv.lock #根据pyprojct.toml,自动生成
- 添加依赖包:uv add click mcp starlette uvicorn,成功后会自动添加到pyprojct.toml的依赖
- 编译包:uv build,注意编译新版本,build 前需要手工清除dist,并需要修改pyprojct.toml的version,否则发布会版本冲突
- 发布包:uv publish --token $PYPI_TOKEN , 成功后查看:https://pypi.org/project/runmcp-in-e2b/
<br/>
- __开发测试__
- 可以在pycharm中开发和运行代码,但是依赖包需要用uv add,pycharm自动识别会报错
- 进入项目目录,可以采用uv run runmcp-in-e2b --alarmtype 2 , alarmtype 默认 1(业务告警), 2(主机告警), 3(中间件告警),运行MCP Server, runmcp-in-e2b 是在[project.scripts]配置的入口
- 注意:项目有两个工程,18080服务端口是runmcp,17070服务端口是bomc-fault,默认是17070
<br/>
- __运行验证__
- uvx runmcp-in-e2b@latest ,latest标签会运行最新代码
- 从 https://pypi.org/project/runmcp-in-e2b/#files 下载代码 runmcp_in_e2b-0.3.1.tar.gz ,解压到任意目录,有源码包
- 进入解压目录后,uv sync 同步生成uv环境,进入test目录,uv run test_runmcp.py ,运行测试代码调用服务器
- 进入解压目录后,uv sync 同步生成uv环境,进入test目录,uv run test_bomcfault.py,运行测试代码调用服务器
<br/>
- __阿里云MCP Server 参数样例__
{
"mcpServers": {
"runmcp_in_e2b": {
"type": "stdio",
"command": "uvx",
"args": [
"runmcp-in-e2b@latest",
"--transport",
"stdio"]}
}
}
- __其他运行和安装方式__
- 不支持uvx install的模式,uvx运行的依赖是统一cache,第二次uvx启动,会从cache加载依赖,非常快,而且不需要手工remove依赖包
- 支持 uv run的模式,直接运行服务,run之前先uv sync,指定python版本:uv sync --python /usr/local/bin/python3.12
- 支持 pip install runmcp-in-e2b
- pip install 完成后,采用 python -m runmcp_in_e2b 运行服务
- 支持python -m 启动模块,项目需要编写__main__.py
- 支持uv run 启动模块,项目需要编写__init__.py
- 如果采用pycharm 调试,Setting:Python Interpreter 选择当前目录的.ven,然后Run的配置选择module:runmcp_in_e2b ,修改Working目录为项目目录
<br/>
Raw data
{
"_id": null,
"home_page": null,
"name": "runmcp-in-e2b",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "zhangx <goosezzy612@gmail.com>",
"keywords": "automation, e2b, mcp, tool",
"author": "Goosezzy",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a8/04/6193294d9dd40730d7ba265f4605b362be0bd652f400fffd8d50bb2cecc5/runmcp_in_e2b-0.4.1.tar.gz",
"platform": null,
"description": "# Run MCP Server in E2B Sandbox\n### \u9879\u76ee\u53d1\u5e03\u5730\u5740\uff1ahttps://pypi.org/project/runmcp-in-e2b/ \n<br/>\n\n- __MCP\u670d\u52a1\u8bf4\u660e__ \nRun MCP Server in E2B Sandbox \u662f\u4e00\u4e2a\u6837\u4f8b\uff08\u76ee\u524d\u672a\u8fd0\u884cE2B\uff09\uff0c\u8bf4\u660e\u5982\u4f55\u53d1\u5e03\u6258\u7ba1\u4e00\u4e2aMCP Server\u3002\n - \u652f\u6301stdio\u548csse\u4e24\u79cd\u6a21\u5f0f\uff1a\n - sse\uff1a\u9ed8\u8ba4\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u7aef\u53e3 18080\uff0c\u6307\u5b9a\u7aef\u53e3\u542f\u52a8\u53c2\u6570\uff1a--port xxx \u6307\u5b9a\n - stdio\uff1a\u542f\u52a8\u53c2\u6570\uff1a--transport stdio\u3002\n \n<br/>\n \n- __\u5f00\u53d1\u73af\u5883\u548c\u8fc7\u7a0b__\n - \u6ce8\u518cPYPI\u8d26\u53f7 https://pypi.org/ \uff0c\u521b\u5efaPYPI_TOKEN\uff0c\u53d1\u5e03\u9700\u8981\u7528\uff1bexport $PYPI_TOKEN \u5230\u73af\u5883\u53d8\u91cf\n - \u5b89\u88c5uv\u5de5\u5177\n - uv\u9879\u76ee\u7ed3\u679c\n - \u5efa\u7acb\u9879\u76ee\u76ee\u5f55runmcp_in_e2b,\u521d\u59cb\u5316\uff0cuv init \uff08\u53ef\u4ee5\u6307\u5b9apython\u7248\u672c\uff09\uff0c\u751f\u6210.venv\n - \u7f16\u5199\u7a0b\u5e8f\uff0c\u9700\u8981\u6309\u7167uvx\u8981\u6c42\u7684\u7ed3\u6784\uff1a \n - src/runmcp_in_e2b #\u9879\u76ee\u76ee\u5f55 \n - test #\u53ef\u9009 \n - pyprojct.toml #\u81ea\u52a8\u751f\u6210\uff0c\u9664\u4e86\u81ea\u52a8\u751f\u6210\uff0c\u9700\u8981\u6dfb\u52a0[build-system]\u548c[project.scripts]\uff08uvx\u7684\u542f\u52a8\u5165\u53e3\uff09 \n - README.md #\u9879\u76ee\u8bf4\u660e\uff0c\u5fc5\u987b\u6709 \n - LICENSE #\u9700\u8981 \n - uv.lock #\u6839\u636epyprojct.toml\uff0c\u81ea\u52a8\u751f\u6210 \n - \u6dfb\u52a0\u4f9d\u8d56\u5305\uff1auv add click mcp starlette uvicorn\uff0c\u6210\u529f\u540e\u4f1a\u81ea\u52a8\u6dfb\u52a0\u5230pyprojct.toml\u7684\u4f9d\u8d56 \n - \u7f16\u8bd1\u5305\uff1auv build\uff0c\u6ce8\u610f\u7f16\u8bd1\u65b0\u7248\u672c\uff0cbuild \u524d\u9700\u8981\u624b\u5de5\u6e05\u9664dist\uff0c\u5e76\u9700\u8981\u4fee\u6539pyprojct.toml\u7684version\uff0c\u5426\u5219\u53d1\u5e03\u4f1a\u7248\u672c\u51b2\u7a81\n - \u53d1\u5e03\u5305\uff1auv publish --token $PYPI_TOKEN , \u6210\u529f\u540e\u67e5\u770b\uff1ahttps://pypi.org/project/runmcp-in-e2b/\n<br/>\n \n- __\u5f00\u53d1\u6d4b\u8bd5__ \n - \u53ef\u4ee5\u5728pycharm\u4e2d\u5f00\u53d1\u548c\u8fd0\u884c\u4ee3\u7801\uff0c\u4f46\u662f\u4f9d\u8d56\u5305\u9700\u8981\u7528uv add\uff0cpycharm\u81ea\u52a8\u8bc6\u522b\u4f1a\u62a5\u9519 \n - \u8fdb\u5165\u9879\u76ee\u76ee\u5f55\uff0c\u53ef\u4ee5\u91c7\u7528uv run runmcp-in-e2b --alarmtype 2 , alarmtype \u9ed8\u8ba4 1(\u4e1a\u52a1\u544a\u8b66), 2(\u4e3b\u673a\u544a\u8b66), 3(\u4e2d\u95f4\u4ef6\u544a\u8b66)\uff0c\u8fd0\u884cMCP Server, runmcp-in-e2b \u662f\u5728[project.scripts]\u914d\u7f6e\u7684\u5165\u53e3 \n - \u6ce8\u610f\uff1a\u9879\u76ee\u6709\u4e24\u4e2a\u5de5\u7a0b\uff0c18080\u670d\u52a1\u7aef\u53e3\u662frunmcp\uff0c17070\u670d\u52a1\u7aef\u53e3\u662fbomc-fault\uff0c\u9ed8\u8ba4\u662f17070 \n<br/>\n \n- __\u8fd0\u884c\u9a8c\u8bc1__ \n - uvx runmcp-in-e2b@latest \uff0clatest\u6807\u7b7e\u4f1a\u8fd0\u884c\u6700\u65b0\u4ee3\u7801\n - \u4ece https://pypi.org/project/runmcp-in-e2b/#files \u4e0b\u8f7d\u4ee3\u7801 runmcp_in_e2b-0.3.1.tar.gz \uff0c\u89e3\u538b\u5230\u4efb\u610f\u76ee\u5f55\uff0c\u6709\u6e90\u7801\u5305\n - \u8fdb\u5165\u89e3\u538b\u76ee\u5f55\u540e\uff0cuv sync \u540c\u6b65\u751f\u6210uv\u73af\u5883\uff0c\u8fdb\u5165test\u76ee\u5f55\uff0cuv run test_runmcp.py \uff0c\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u8c03\u7528\u670d\u52a1\u5668 \n - \u8fdb\u5165\u89e3\u538b\u76ee\u5f55\u540e\uff0cuv sync \u540c\u6b65\u751f\u6210uv\u73af\u5883\uff0c\u8fdb\u5165test\u76ee\u5f55\uff0cuv run test_bomcfault.py,\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u8c03\u7528\u670d\u52a1\u5668\n<br/>\n\n- __\u963f\u91cc\u4e91MCP Server \u53c2\u6570\u6837\u4f8b__ \n{ \n\"mcpServers\": { \n\"runmcp_in_e2b\": { \n\"type\": \"stdio\", \n\"command\": \"uvx\", \n\"args\": [ \n\"runmcp-in-e2b@latest\", \n\"--transport\", \n\"stdio\"]} \n} \n} \n \n- __\u5176\u4ed6\u8fd0\u884c\u548c\u5b89\u88c5\u65b9\u5f0f__ \n - \u4e0d\u652f\u6301uvx install\u7684\u6a21\u5f0f\uff0cuvx\u8fd0\u884c\u7684\u4f9d\u8d56\u662f\u7edf\u4e00cache\uff0c\u7b2c\u4e8c\u6b21uvx\u542f\u52a8\uff0c\u4f1a\u4ececache\u52a0\u8f7d\u4f9d\u8d56\uff0c\u975e\u5e38\u5feb\uff0c\u800c\u4e14\u4e0d\u9700\u8981\u624b\u5de5remove\u4f9d\u8d56\u5305\n - \u652f\u6301 uv run\u7684\u6a21\u5f0f\uff0c\u76f4\u63a5\u8fd0\u884c\u670d\u52a1\uff0crun\u4e4b\u524d\u5148uv sync\uff0c\u6307\u5b9apython\u7248\u672c\uff1auv sync --python /usr/local/bin/python3.12 \n - \u652f\u6301 pip install runmcp-in-e2b \n - pip install \u5b8c\u6210\u540e\uff0c\u91c7\u7528 python -m runmcp_in_e2b \u8fd0\u884c\u670d\u52a1 \n - \u652f\u6301python -m \u542f\u52a8\u6a21\u5757\uff0c\u9879\u76ee\u9700\u8981\u7f16\u5199__main__.py \n - \u652f\u6301uv run \u542f\u52a8\u6a21\u5757\uff0c\u9879\u76ee\u9700\u8981\u7f16\u5199__init__.py \n - \u5982\u679c\u91c7\u7528pycharm \u8c03\u8bd5\uff0cSetting\uff1aPython Interpreter \u9009\u62e9\u5f53\u524d\u76ee\u5f55\u7684.ven\uff0c\u7136\u540eRun\u7684\u914d\u7f6e\u9009\u62e9module\uff1arunmcp_in_e2b \uff0c\u4fee\u6539Working\u76ee\u5f55\u4e3a\u9879\u76ee\u76ee\u5f55 \n<br/>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Add your description here",
"version": "0.4.1",
"project_urls": null,
"split_keywords": [
"automation",
" e2b",
" mcp",
" tool"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a9daf6a13e97658567ca42a3615c93b5a05316dd6d94daf52da8d84775af81a1",
"md5": "8730cfddcdcde027b85a947dd6e63be4",
"sha256": "291b5d3ef2825d881aa3a661319c62888ce213c1d5ee9af5a6b0d9c3f457218c"
},
"downloads": -1,
"filename": "runmcp_in_e2b-0.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8730cfddcdcde027b85a947dd6e63be4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 7929,
"upload_time": "2025-07-15T06:32:31",
"upload_time_iso_8601": "2025-07-15T06:32:31.674854Z",
"url": "https://files.pythonhosted.org/packages/a9/da/f6a13e97658567ca42a3615c93b5a05316dd6d94daf52da8d84775af81a1/runmcp_in_e2b-0.4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a8046193294d9dd40730d7ba265f4605b362be0bd652f400fffd8d50bb2cecc5",
"md5": "ee17bcbfe74d4d5a12237bd3f0d7ed90",
"sha256": "00a24924082bc54975c0f810f28e4a7776d8d1f7bc228f20498369113d727968"
},
"downloads": -1,
"filename": "runmcp_in_e2b-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "ee17bcbfe74d4d5a12237bd3f0d7ed90",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 26337,
"upload_time": "2025-07-15T06:32:33",
"upload_time_iso_8601": "2025-07-15T06:32:33.116484Z",
"url": "https://files.pythonhosted.org/packages/a8/04/6193294d9dd40730d7ba265f4605b362be0bd652f400fffd8d50bb2cecc5/runmcp_in_e2b-0.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-15 06:32:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "runmcp-in-e2b"
}