{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_kcvgm7sjccjs","handle":"mcp-vitrine","url":"https://wellknown.network/agents/mcp-vitrine","links":{"self":"https://wellknown.network/agents/mcp-vitrine/record.json","html":"https://wellknown.network/agents/mcp-vitrine","markdown":"https://wellknown.network/agents/mcp-vitrine/record.md","api":"https://wellknown.network/api/v1/agents/mcp-vitrine","status":"https://wellknown.network/api/v1/agents/mcp-vitrine/status","claim":"https://wellknown.network/agents/mcp-vitrine/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-vitrine/claim.json","badge":"https://wellknown.network/agents/mcp-vitrine/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-vitrine/history","tools":"https://wellknown.network/api/v1/agents/mcp-vitrine/tools"},"ard":{"identifier":"urn:air::server:mcp-vitrine","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-vitrine","summary":"Self-hosted MCP server that turns agent output into private (signed, expiring, revocable) or public links.","description":"# vitrine\n\n[![ci](https://github.com/edgar971/vitrine/actions/workflows/ci.yml/badge.svg)](https://github.com/edgar971/vitrine/actions/workflows/ci.yml)\n![python](https://img.shields.io/badge/python-3.15%2B-blue)\n![license](https://img.shields.io/badge/license-MIT-green)\n\n**Shareable links for what your AI agent makes.** vitrine is a small, self-hosted MCP server. Your\nagent publishes an HTML report, a chart, a PDF, a folder of files or a single React component, and\ngets back a link that opens in any browser.\n\n- **Private by default.** Links are signed, expire and can be revoked. An artifact becomes public\n  only after you approve it.\n- **One link per artifact.** When the agent revises it, the link stays the same.\n- **Know what happened to a link.** A link can carry a passcode, be revoked on its own and\n  count its views, anonymously. A public artifact can go private again on a date.\n- **Any MCP client.** Claude Code, Hermes Agent, or anything that speaks MCP over HTTP.\n- **Easy to run.** One process, one port, one folder of files. No database.\n\n## Install\n\nWith [`uv`](https://docs.astral.sh/uv/) (it fetches Python 3.15 for you):\n\n```bash\nuvx mcp-vitrine --version          # run without installing\nuv tool install mcp-vitrine        # or install the `mcp-vitrine` command\n```\n\nOr with Docker. `stable` is the newest release; for a deployment, pin a version from the\n[releases](https://github.com/edgar971/vitrine/releases) instead:\n\n```bash\ndocker pull ghcr.io/edgar971/vitrine:stable\n```\n\n**Upgrading from `0.1.x`?** `0.2.0` moves `meta.json` to schema 2, so run `uvx mcp-vitrine migrate`\nonce against your `data_dir` before starting the new version — `serve` refuses to start on old data\nuntil you do. See [operations § 4](https://github.com/edgar971/vitrine/blob/main/docs/operations.md#4-upgrades-and-migrations).\n\n## Run it\n\nvitrine needs a secret, to sign links, and one token per client:\n\n```bash\nexport VITRINE_SECRET=\"$(uvx mcp-vitrine secret new)\"\nuvx mcp-vitrine token …","publisher":{"name":"Edgar Pino","url":null},"homepage":"https://github.com/edgar971/vitrine/tree/main/docs","repository":"https://github.com/edgar971/vitrine/blob/main/CHANGELOG.md","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["mcp","artifacts","sharing","self-hosted","fastmcp","agents"],"pricing":null,"endpoints":[{"url":"pypi:mcp-vitrine","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.779,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.768,"provenance":"derived"}],"categories":["analytics","dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"mcp-vitrine","registry":"pypi","observedAt":"2026-10-30T20:23:18.424Z","publishedAt":"2026-10-18T17:07:44.499869Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-vitrine","url":"https://pypi.org/project/mcp-vitrine/","firstSeenAt":"2026-10-18T16:29:44.032Z","fetchedAt":"2026-10-30T20:21:43.402Z","normalizedAt":"2026-10-30T20:21:43.402Z"}]},"firstSeenAt":"2026-10-18T16:29:44.032Z","updatedAt":"2026-10-30T20:23:18.424Z"}