mcp-builder


Namemcp-builder JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryBuild, package, install, and validate MCP servers (Matrix Hub–compatible).
upload_time2025-08-16 00:06:20
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseApache-2.0
keywords builder cli matrixhub mcp modelcontextprotocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🔧 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"
}
        
Elapsed time: 1.88535s