# 🔧 mcp-builder
> Build, package, install, and validate **MCP servers** locally — with **Matrix Hub**–compatible bundles and install plans.
<p align="center">
<img src="https://placehold.co/480x140/1e293b/ffffff?text=mcp-builder" alt="mcp-builder logo" width="420">
</p>
<p align="center">
<a href="https://pypi.org/project/mcp-builder/"><img alt="PyPI" src="https://img.shields.io/pypi/v/mcp-builder.svg?label=PyPI&color=4c1"></a>
<a href="https://github.com/ruslanmv/mcp-builder/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/ruslanmv/mcp-builder/ci.yml?branch=main"></a>
<a href="https://ruslanmv.github.io/mcp-builder/"><img alt="Docs" src="https://img.shields.io/badge/docs-mkdocs%20material-2962ff"></a>
<a href="https://github.com/agent-matrix/matrix-hub"><img alt="Matrix Hub" src="https://img.shields.io/badge/compatible%20with-matrix--hub-brightgreen"></a>
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
</p>
---
## ✨ What is it?
`mcp-builder` turns a source repo (Python/Node today) into a **verifiable** bundle:
* **Detects** language + transport (SSE / STDIO)
* **Scaffolds** `runner.json` + `mcp.server.json`
* **Packages** to a normalized **zip** + **SHA-256**
* **Emits** a Matrix Hub–compatible **install plan**
* **Installs** locally to `~/.matrix/runners/<alias>/<version>/`
* **Probes** startup (smoke test), with optional port/env overrides
It’s designed to scale: convention-over-configuration, typed validation, and CI-friendly.
---
## 🚀 Quickstart
> Requires **Python 3.11+**. For Node servers, install Node 18+.
```bash
# 0) Install the CLI
pip install mcp-builder
# 1) Detect
mcp-builder detect ./fixtures/hello-python-sse
# 2) Scaffold metadata (if missing)
mcp-builder init ./fixtures/hello-python-sse --transport sse --name hello --version 0.1.0
# 3) Build metadata (zip creation handled by pipeline/package step)
mcp-builder build ./fixtures/hello-python-sse --out ./dist
# 4) Package to zip (+sha256) using the packaging API in your pipeline
# ... dist/bundle.zip and dist/bundle.zip.sha256
# 5) Emit an install plan for Matrix Hub
mcp-builder plan ./dist/bundle.zip --name hello --transport SSE --out ./dist/hello.plan.json
# 6) Install locally (with a smoke probe)
mcp-builder install ./dist/bundle.zip --as hello-sse --port 8023 --env LOG_LEVEL=debug
# 7) Run on demand
mcp-builder run ~/.matrix/runners/hello-sse/0.1.0 --port 8023
```
**Handy flags**
* `--port N` — sets `PORT` during probe/run (SSE)
* `--env KEY=VAL` — repeatable env for probe/run
* `--no-probe` — skip the post-install smoke test
* `--prefer docker|zip|git` — future multi-surface preference
---
## 🧰 CLI overview
| Command | What it does |
| --------- | ----------------------------------------------------------------- |
| `detect` | Detects language/transport/entry; prints JSON |
| `init` | Scaffolds `runner.json` + `mcp.server.json` |
| `build` | Produces metadata & file list for packaging |
| `plan` | Emits a Matrix Hub–compatible install plan from a bundle |
| `install` | Installs a bundle/dir into `~/.matrix/runners/<alias>/<version>/` |
| `run` | Smoke-runs a bundle/dir; supports `--port` and `--env KEY=VAL` |
| `verify` | Verifies a bundle against a SHA-256 (`sha256:<hex>` or raw hex) |
---
## 🧪 Tests & examples
* **Fixtures**: `fixtures/hello-python-sse/` — a minimal SSE server
* **Unit tests**: detectors, validator, zip safety
* **Integration tests**: build → plan shape → install zip
Run everything:
```bash
make venv
. .venv/bin/activate
make test # lint + unit + integration
make docs-serve # local docs at http://127.0.0.1:8001
```
---
## 🧱 Architecture (P0–P3)
* **Detect**: `mcp_builder/detect/*` → `DetectReport(lang, transport, entrypoints, …)`
* **Buildpacks**: `buildpacks/python.py`, `buildpacks/node.py` → runner + manifest + files
* **Package**: `package/zip.py` → `bundle.zip` + `.sha256`
* **Validate**: `schema/*.json`, `validator.py` (permissive, tightened later)
* **Plan**: `planner.py` → `install plan` JSON
* **Install**: `installer/install.py` (zip/dir), safe extraction, lock metadata
* **Run/Probe**: `conformance/runner.py` (smoke), `conformance/testspec.py` (basic tests)
* **Integrity**: `signing/checks.py` (sha256 now; cosign later)
---
## 🧭 When to use MCP (and when not to)
**Best fits**: exposing executable capabilities (tools) to AI apps — DB queries, filesystem ops, API calls, workflows.
**Also fits**: read-only resources (files/URLs/DB rows) & reusable prompts/templates.
**Use MCP when**: you need standardized integration, security/permissioning, model-agnostic interop, and observability across clients.
**Don’t use MCP when**: a simple HTTP API/Webhook suffices and model-facing semantics aren’t needed.
---
## 🧑🎨 Designing great MCP servers
**Core principles**
* Single responsibility (one auth domain, cohesive feature set)
* Statelessness (replayable; horizontally scalable)
* Explicit contracts (strict JSON Schemas, min/max/enum/pattern)
* Least privilege (read-only default, granular permissions)
* Idempotency & safety (confirm destructive ops)
* Observability first (structured logs, metrics, traces, request IDs)
* Failure-tolerant (timeouts, retries, circuit breakers, cancellation)
**Transports**
* **STDIO**: simplest for local dev/trusted envs
* **HTTP (SSE)**: default for browsers/remote clients; supports streaming & CORS
* **WebSocket**: bidirectional, if you control both ends
**Security checklist**
* Read-only default; explicit write gates
* FS/egress allowlists; sanitize URIs
* AuthN/AuthZ (scopes, rotation), secrets redaction
* Quotas & rate limits; audit logs
**Observability & reliability**
* Metrics: latency, error rate, concurrency, bytes in/out
* Logs: structured JSON with correlation/request IDs
* Tracing: spans across external calls
* Resilience: timeouts, backoff, health/liveness probes
---
## 🧪 Testing strategy
* **Unit**: schema validation, input validators, error mappers
* **Integration**: spin up server; `tools/list`, resource reads, tool calls
* **Protocol**: MCP flows (listing, calling, streaming, cancellation)
* **Performance**: load hot paths; watch tail latencies
* **Model-compat**: exercise across multiple model clients
---
## 🧯 Troubleshooting
* **Editable install fails** with `TypeError: Field project.dependencies must be an array`
→ In `pyproject.toml`, `project.dependencies` must be an **array of strings**, not a TOML table.
* **Zip extraction blocked**
→ The installer protects against zip-slip, absolute paths, and huge members. Rebuild your bundle with normalized relative paths only.
* **Probe timeout**
→ Increase `--timeout`, set a deterministic `--port`, or run with `--no-probe` in CI and test separately.
---
## 🛣️ Roadmap
* P4: **Docker** surface (`docker-image-ref.txt` then actual buildx flow)
* P4: **Schema tightening** (`additionalProperties: false` where safe)
* P5: **Node SSE** detection & build; **Go/Rust** buildpacks
* Supply chain: **SBOM**, **SLSA provenance**, **cosign** signatures
* Conformance: full **handshake** + **tool call** contract tests
* Multi-surface plans: zip / PyPI / npm / Docker / client configs
---
## 🧪 Industrialized blueprint (for many servers & surfaces)
**Guiding principles**
* Convention over config
* One source → many surfaces (zip, PyPI/npm, Docker, OS packages, client configs)
* Reproducible & verifiable (pinned toolchains, SBOM, provenance, signatures)
* Gated releases (conformance/security/perf)
**Canonical `mcp.server.json` (embed in every bundle)**
```json
{
"schemaVersion": "1.0",
"name": "hello-mcp",
"version": "0.2.0",
"transports": [
{"type": "stdio", "command": ["python","-m","hello_mcp.server_stdio"]},
{"type": "sse", "url": "http://127.0.0.1:8000/messages/", "health": "/healthz"}
],
"tools": ["hello"],
"limits": {"maxInputKB":128,"maxOutputKB":256,"timeoutMs":15000},
"security": {
"readOnlyDefault": true,
"fsAllowlist": ["${PROJECT_ROOT}/data/**"],
"egressAllowlist": ["api.github.com:443"]
},
"build": {"lang":"python","runner":"uv","lockfiles":["uv.lock"]},
"digest": {"algo":"sha256","value":"<filled by CI>"}
}
```
**Multi-surface outputs from one build**
* Zip (+ `mcp.server.json`, `runner.json`, SHA-256, signature, SBOM, provenance)
* PyPI/npm (console-script/bin → `uvx`/`npx` installs)
* Docker (SSE preferred, non-root, healthcheck)
* Client configs (VS Code / Claude Desktop snippets)
* OS packages (brew/scoop/winget) – optional
**Conformance & security gates (practical minimum)**
* Protocol: list/call/cancel/stream
* Schemas: strict JSON Schema validation
* Security: read-only default + allowlists
* Perf smoke: concurrent calls within p95 budgets
* Logging: JSON logs include tool, durationMs, status, requestId
---
## 🛠 Development
```bash
# Create a local environment and install dev/docs extras
make venv
. .venv/bin/activate
# Quality gates & tests
make lint
make fmt
make unit
make integration
make test
# Docs
make docs-serve # live
make docs-build # static site in ./site
# Package for PyPI
make build
```
---
## 📜 License
Licensed under the **Apache 2.0** License — see [LICENSE](LICENSE).
---
## 🙋 FAQ
**Is this only for Python?**
No. Python is first-class today; Node stdio is included; more languages (Go/Rust) are planned via buildpacks.
**Is it safe to install arbitrary zips?**
We verify SHA-256, block zip-slip/absolute paths, and will add signatures (cosign) + provenance in upcoming releases.
**How do I make my server “Matrix Hub ready”?**
Include `runner.json` + **canonical** `mcp.server.json`, keep tools’ schemas strict, and ensure read-only defaults + allowlists. Use `mcp-builder plan` to emit an install plan with digests.
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-builder",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "builder, cli, matrixhub, mcp, modelcontextprotocol",
"author": null,
"author_email": "Ruslan Magana Vsevolodovna <contact@ruslanmv.com>",
"download_url": "https://files.pythonhosted.org/packages/01/62/8430b7fe89fbcc799c2981e3995e44ae8aac3bfd10b1c6bc9dd09b8535c4/mcp_builder-0.1.0.tar.gz",
"platform": null,
"description": "# \ud83d\udd27 mcp-builder\n\n> Build, package, install, and validate **MCP servers** locally \u2014 with **Matrix Hub**\u2013compatible bundles and install plans.\n\n<p align=\"center\">\n <img src=\"https://placehold.co/480x140/1e293b/ffffff?text=mcp-builder\" alt=\"mcp-builder logo\" width=\"420\">\n</p>\n\n<p align=\"center\">\n <a href=\"https://pypi.org/project/mcp-builder/\"><img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/mcp-builder.svg?label=PyPI&color=4c1\"></a>\n <a href=\"https://github.com/ruslanmv/mcp-builder/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/ruslanmv/mcp-builder/ci.yml?branch=main\"></a>\n <a href=\"https://ruslanmv.github.io/mcp-builder/\"><img alt=\"Docs\" src=\"https://img.shields.io/badge/docs-mkdocs%20material-2962ff\"></a>\n <a href=\"https://github.com/agent-matrix/matrix-hub\"><img alt=\"Matrix Hub\" src=\"https://img.shields.io/badge/compatible%20with-matrix--hub-brightgreen\"></a>\n <a href=\"LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/badge/license-Apache--2.0-blue\"></a>\n</p>\n\n---\n\n## \u2728 What is it?\n\n`mcp-builder` turns a source repo (Python/Node today) into a **verifiable** bundle:\n\n* **Detects** language + transport (SSE / STDIO)\n* **Scaffolds** `runner.json` + `mcp.server.json`\n* **Packages** to a normalized **zip** + **SHA-256**\n* **Emits** a Matrix Hub\u2013compatible **install plan**\n* **Installs** locally to `~/.matrix/runners/<alias>/<version>/`\n* **Probes** startup (smoke test), with optional port/env overrides\n\nIt\u2019s designed to scale: convention-over-configuration, typed validation, and CI-friendly.\n\n---\n\n## \ud83d\ude80 Quickstart\n\n> Requires **Python 3.11+**. For Node servers, install Node 18+.\n\n```bash\n# 0) Install the CLI\npip install mcp-builder\n\n# 1) Detect\nmcp-builder detect ./fixtures/hello-python-sse\n\n# 2) Scaffold metadata (if missing)\nmcp-builder init ./fixtures/hello-python-sse --transport sse --name hello --version 0.1.0\n\n# 3) Build metadata (zip creation handled by pipeline/package step)\nmcp-builder build ./fixtures/hello-python-sse --out ./dist\n\n# 4) Package to zip (+sha256) using the packaging API in your pipeline\n# ... dist/bundle.zip and dist/bundle.zip.sha256\n\n# 5) Emit an install plan for Matrix Hub\nmcp-builder plan ./dist/bundle.zip --name hello --transport SSE --out ./dist/hello.plan.json\n\n# 6) Install locally (with a smoke probe)\nmcp-builder install ./dist/bundle.zip --as hello-sse --port 8023 --env LOG_LEVEL=debug\n\n# 7) Run on demand\nmcp-builder run ~/.matrix/runners/hello-sse/0.1.0 --port 8023\n```\n\n**Handy flags**\n\n* `--port N` \u2014 sets `PORT` during probe/run (SSE)\n* `--env KEY=VAL` \u2014 repeatable env for probe/run\n* `--no-probe` \u2014 skip the post-install smoke test\n* `--prefer docker|zip|git` \u2014 future multi-surface preference\n\n---\n\n## \ud83e\uddf0 CLI overview\n\n| Command | What it does |\n| --------- | ----------------------------------------------------------------- |\n| `detect` | Detects language/transport/entry; prints JSON |\n| `init` | Scaffolds `runner.json` + `mcp.server.json` |\n| `build` | Produces metadata & file list for packaging |\n| `plan` | Emits a Matrix Hub\u2013compatible install plan from a bundle |\n| `install` | Installs a bundle/dir into `~/.matrix/runners/<alias>/<version>/` |\n| `run` | Smoke-runs a bundle/dir; supports `--port` and `--env KEY=VAL` |\n| `verify` | Verifies a bundle against a SHA-256 (`sha256:<hex>` or raw hex) |\n\n---\n\n## \ud83e\uddea Tests & examples\n\n* **Fixtures**: `fixtures/hello-python-sse/` \u2014 a minimal SSE server\n* **Unit tests**: detectors, validator, zip safety\n* **Integration tests**: build \u2192 plan shape \u2192 install zip\n\nRun everything:\n\n```bash\nmake venv\n. .venv/bin/activate\nmake test # lint + unit + integration\nmake docs-serve # local docs at http://127.0.0.1:8001\n```\n\n---\n\n## \ud83e\uddf1 Architecture (P0\u2013P3)\n\n* **Detect**: `mcp_builder/detect/*` \u2192 `DetectReport(lang, transport, entrypoints, \u2026)`\n* **Buildpacks**: `buildpacks/python.py`, `buildpacks/node.py` \u2192 runner + manifest + files\n* **Package**: `package/zip.py` \u2192 `bundle.zip` + `.sha256`\n* **Validate**: `schema/*.json`, `validator.py` (permissive, tightened later)\n* **Plan**: `planner.py` \u2192 `install plan` JSON\n* **Install**: `installer/install.py` (zip/dir), safe extraction, lock metadata\n* **Run/Probe**: `conformance/runner.py` (smoke), `conformance/testspec.py` (basic tests)\n* **Integrity**: `signing/checks.py` (sha256 now; cosign later)\n\n---\n\n## \ud83e\udded When to use MCP (and when not to)\n\n**Best fits**: exposing executable capabilities (tools) to AI apps \u2014 DB queries, filesystem ops, API calls, workflows.\n**Also fits**: read-only resources (files/URLs/DB rows) & reusable prompts/templates.\n**Use MCP when**: you need standardized integration, security/permissioning, model-agnostic interop, and observability across clients.\n**Don\u2019t use MCP when**: a simple HTTP API/Webhook suffices and model-facing semantics aren\u2019t needed.\n\n---\n\n## \ud83e\uddd1\u200d\ud83c\udfa8 Designing great MCP servers\n\n**Core principles**\n\n* Single responsibility (one auth domain, cohesive feature set)\n* Statelessness (replayable; horizontally scalable)\n* Explicit contracts (strict JSON Schemas, min/max/enum/pattern)\n* Least privilege (read-only default, granular permissions)\n* Idempotency & safety (confirm destructive ops)\n* Observability first (structured logs, metrics, traces, request IDs)\n* Failure-tolerant (timeouts, retries, circuit breakers, cancellation)\n\n**Transports**\n\n* **STDIO**: simplest for local dev/trusted envs\n* **HTTP (SSE)**: default for browsers/remote clients; supports streaming & CORS\n* **WebSocket**: bidirectional, if you control both ends\n\n**Security checklist**\n\n* Read-only default; explicit write gates\n* FS/egress allowlists; sanitize URIs\n* AuthN/AuthZ (scopes, rotation), secrets redaction\n* Quotas & rate limits; audit logs\n\n**Observability & reliability**\n\n* Metrics: latency, error rate, concurrency, bytes in/out\n* Logs: structured JSON with correlation/request IDs\n* Tracing: spans across external calls\n* Resilience: timeouts, backoff, health/liveness probes\n\n---\n\n## \ud83e\uddea Testing strategy\n\n* **Unit**: schema validation, input validators, error mappers\n* **Integration**: spin up server; `tools/list`, resource reads, tool calls\n* **Protocol**: MCP flows (listing, calling, streaming, cancellation)\n* **Performance**: load hot paths; watch tail latencies\n* **Model-compat**: exercise across multiple model clients\n\n---\n\n## \ud83e\uddef Troubleshooting\n\n* **Editable install fails** with `TypeError: Field project.dependencies must be an array`\n \u2192 In `pyproject.toml`, `project.dependencies` must be an **array of strings**, not a TOML table.\n\n* **Zip extraction blocked**\n \u2192 The installer protects against zip-slip, absolute paths, and huge members. Rebuild your bundle with normalized relative paths only.\n\n* **Probe timeout**\n \u2192 Increase `--timeout`, set a deterministic `--port`, or run with `--no-probe` in CI and test separately.\n\n---\n\n## \ud83d\udee3\ufe0f Roadmap\n\n* P4: **Docker** surface (`docker-image-ref.txt` then actual buildx flow)\n* P4: **Schema tightening** (`additionalProperties: false` where safe)\n* P5: **Node SSE** detection & build; **Go/Rust** buildpacks\n* Supply chain: **SBOM**, **SLSA provenance**, **cosign** signatures\n* Conformance: full **handshake** + **tool call** contract tests\n* Multi-surface plans: zip / PyPI / npm / Docker / client configs\n\n---\n\n## \ud83e\uddea Industrialized blueprint (for many servers & surfaces)\n\n**Guiding principles**\n\n* Convention over config\n* One source \u2192 many surfaces (zip, PyPI/npm, Docker, OS packages, client configs)\n* Reproducible & verifiable (pinned toolchains, SBOM, provenance, signatures)\n* Gated releases (conformance/security/perf)\n\n**Canonical `mcp.server.json` (embed in every bundle)**\n\n```json\n{\n \"schemaVersion\": \"1.0\",\n \"name\": \"hello-mcp\",\n \"version\": \"0.2.0\",\n \"transports\": [\n {\"type\": \"stdio\", \"command\": [\"python\",\"-m\",\"hello_mcp.server_stdio\"]},\n {\"type\": \"sse\", \"url\": \"http://127.0.0.1:8000/messages/\", \"health\": \"/healthz\"}\n ],\n \"tools\": [\"hello\"],\n \"limits\": {\"maxInputKB\":128,\"maxOutputKB\":256,\"timeoutMs\":15000},\n \"security\": {\n \"readOnlyDefault\": true,\n \"fsAllowlist\": [\"${PROJECT_ROOT}/data/**\"],\n \"egressAllowlist\": [\"api.github.com:443\"]\n },\n \"build\": {\"lang\":\"python\",\"runner\":\"uv\",\"lockfiles\":[\"uv.lock\"]},\n \"digest\": {\"algo\":\"sha256\",\"value\":\"<filled by CI>\"}\n}\n```\n\n**Multi-surface outputs from one build**\n\n* Zip (+ `mcp.server.json`, `runner.json`, SHA-256, signature, SBOM, provenance)\n* PyPI/npm (console-script/bin \u2192 `uvx`/`npx` installs)\n* Docker (SSE preferred, non-root, healthcheck)\n* Client configs (VS Code / Claude Desktop snippets)\n* OS packages (brew/scoop/winget) \u2013 optional\n\n**Conformance & security gates (practical minimum)**\n\n* Protocol: list/call/cancel/stream\n* Schemas: strict JSON Schema validation\n* Security: read-only default + allowlists\n* Perf smoke: concurrent calls within p95 budgets\n* Logging: JSON logs include tool, durationMs, status, requestId\n\n---\n\n## \ud83d\udee0 Development\n\n```bash\n# Create a local environment and install dev/docs extras\nmake venv\n. .venv/bin/activate\n\n# Quality gates & tests\nmake lint\nmake fmt\nmake unit\nmake integration\nmake test\n\n# Docs\nmake docs-serve # live\nmake docs-build # static site in ./site\n\n# Package for PyPI\nmake build\n```\n\n---\n\n## \ud83d\udcdc License\n\nLicensed under the **Apache 2.0** License \u2014 see [LICENSE](LICENSE).\n\n---\n\n## \ud83d\ude4b FAQ\n\n**Is this only for Python?**\nNo. Python is first-class today; Node stdio is included; more languages (Go/Rust) are planned via buildpacks.\n\n**Is it safe to install arbitrary zips?**\nWe verify SHA-256, block zip-slip/absolute paths, and will add signatures (cosign) + provenance in upcoming releases.\n\n**How do I make my server \u201cMatrix Hub ready\u201d?**\nInclude `runner.json` + **canonical** `mcp.server.json`, keep tools\u2019 schemas strict, and ensure read-only defaults + allowlists. Use `mcp-builder plan` to emit an install plan with digests.\n\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Build, package, install, and validate MCP servers (Matrix Hub\u2013compatible).",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://ruslanmv.github.io/mcp-builder",
"Homepage": "https://github.com/ruslanmv/mcp-builder",
"Repository": "https://github.com/ruslanmv/mcp-builder"
},
"split_keywords": [
"builder",
" cli",
" matrixhub",
" mcp",
" modelcontextprotocol"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "df24d775629ea795d96f8e87d34a5defd762489e8a61b9f9378c84f76758cc34",
"md5": "4fd0f08ef6f87a2fde355df853d2ea03",
"sha256": "77072d03433f8fca3b3cd4f49c6dd95cb2c94775a2b3dcb7d59c4c86e6e6a608"
},
"downloads": -1,
"filename": "mcp_builder-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4fd0f08ef6f87a2fde355df853d2ea03",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 35774,
"upload_time": "2025-08-16T00:06:18",
"upload_time_iso_8601": "2025-08-16T00:06:18.922040Z",
"url": "https://files.pythonhosted.org/packages/df/24/d775629ea795d96f8e87d34a5defd762489e8a61b9f9378c84f76758cc34/mcp_builder-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "01628430b7fe89fbcc799c2981e3995e44ae8aac3bfd10b1c6bc9dd09b8535c4",
"md5": "e800b7d66258ddeb799bec63d3413953",
"sha256": "19995a94a996f54f31a9d930655b64eeaa3cc7c277ab26430c4c73b96b39fc66"
},
"downloads": -1,
"filename": "mcp_builder-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "e800b7d66258ddeb799bec63d3413953",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 21705,
"upload_time": "2025-08-16T00:06:20",
"upload_time_iso_8601": "2025-08-16T00:06:20.019255Z",
"url": "https://files.pythonhosted.org/packages/01/62/8430b7fe89fbcc799c2981e3995e44ae8aac3bfd10b1c6bc9dd09b8535c4/mcp_builder-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-16 00:06:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ruslanmv",
"github_project": "mcp-builder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mcp-builder"
}