{
  "markdown": "# Artifacta MCP Server\n\n[![npm](https://img.shields.io/npm/v/%40artifacta-mcp%2Fmcp)](https://www.npmjs.com/package/@artifacta-mcp/mcp)\n[![PyPI](https://img.shields.io/pypi/v/artifacta-mcp)](https://pypi.org/project/artifacta-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n\nOfficial MCP server for [Artifacta](https://artifacta.io) — an artifact store\npurpose-built for AI agents. Agents persist run outputs (files, reports,\ndatasets, build results) with session and agent metadata, hand them off across\nsessions, and share them via expiring download links. Content-hash dedup means\nre-storing the same bytes is free.\n\nListed in the [official MCP registry](https://registry.modelcontextprotocol.io)\nas `io.artifacta/mcp`.\n\nTwo implementations with the same tool surface, error contract, and\npath-confinement engine:\n\n| Directory | Package | Runtime |\n|-----------|---------|---------|\n| [`typescript/`](./typescript) | [`@artifacta-mcp/mcp`](https://www.npmjs.com/package/@artifacta-mcp/mcp) | Node 20+ |\n| [`python/`](./python) | [`artifacta-mcp`](https://pypi.org/project/artifacta-mcp/) | Python 3.10+ |\n\n## Install as a Claude Code plugin\n\nFor Claude Code, the fastest path is the plugin marketplace this repo doubles\nas — it wires up the hosted server *and* a skill that persists run outputs\nautomatically:\n\n```text\n/plugin marketplace add SagaPeak/artifacta-mcp\n/plugin install artifacta@artifacta\n```\n\nThis bundles the same hosted MCP connection as the Quick start below plus the\n`persisting-outputs` skill (`/artifacta:persisting-outputs`, or it auto-triggers\nwhen a session has outputs worth saving). Update the plugin with\n`/plugin marketplace update artifacta`. See the\n[plugin setup guide](https://docs.artifacta.io/mcp/install/claude-code-plugin).\n\n## Quick start\n\nThe fastest way to connect is the hosted server — no install, no API key:\n\n```bash\nclaude mcp add --transport http artifacta https://mcp.artifacta.io/mcp\n```\n\nOn first use your client self-registers via OAuth Dynamic Client Registration\n(PKCE) and opens a browser to authorize — no `ak_live_` key to copy or store.\nSee the [hosted setup guide](https://docs.artifacta.io/mcp/install/claude-code-hosted).\n\n### Local / CI (stdio)\n\nFor headless, air-gapped, or CI environments where a browser OAuth flow isn't\navailable, run the package locally over stdio with an API key. Get a key at\n[app.artifacta.io/dashboard/keys](https://app.artifacta.io/dashboard/keys),\nthen add to your MCP client config (Claude Desktop, Claude Code, Cursor, or any\nMCP client):\n\n```json\n{\n  \"mcpServers\": {\n    \"artifacta\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@artifacta-mcp/mcp\"],\n      \"env\": {\n        \"ARTIFACTA_API_KEY\": \"ak_live_...\"\n      }\n    }\n  }\n}\n```\n\nOr run the Python implementation with `pipx run artifacta-mcp`.\n\nSee the per-package READMEs for config-file profiles, path confinement\n(`--allow-path`), destructive-tool gating (`--allow-destructive`), and\ntroubleshooting: [TypeScript](./typescript/README.md) ·\n[Python](./python/README.md).\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `whoami` | Verify credentials; returns tenant and plan info |\n| `store_artifact` | Upload an artifact from inline content or a local path |\n| `request_upload_url` / `complete_upload` | Two-phase presigned upload for large files |\n| `get_artifact` | Fetch artifact metadata by ID |\n| `get_artifact_download_url` | Get a presigned download URL (1h expiry) |\n| `list_artifacts` | List/filter artifacts by session, agent, or metadata |\n| `list_sessions` | List active sessions |\n| `seal_session` | Seal a session so no further artifacts can be added (gated behind `--allow-destructive`) |\n| `create_download_link` | Create a public expiring share link (gated behind `--allow-destructive`) |\n| `delete_artifact` | Soft-delete an artifact (gated behind `--allow-destructive`, same gate as `create_download_link`) |\n| `publish_artifact` | Publish an artifact as a public page at `artifacta.io/a/{slug}` (Artifact Pages); idempotent, unlisted by default |\n| `unpublish_artifact` | Take down an artifact's public page; the artifact itself is untouched; idempotent |\n\nPlus MCP resources for `whoami`, artifact metadata, artifact bytes, and\nsessions.\n\nSafety defaults: local-file uploads are confined to an explicit `--allow-path`\nallow-list, and destructive tools (public share links, deletes, session seals)\nare hidden from clients that can't confirm writes unless `--allow-destructive`\nis passed. `publish_artifact` and `unpublish_artifact` are idempotent write\noperations, not destructive ones — they are not gated behind\n`--allow-destructive`.\n\nHosted OAuth connections (`mcp.artifacta.io`) add a second layer: the consent\nscreen grants one of three scopes — `artifacts:read` ⊆ `artifacts:write` ⊆\n`artifacts:destroy`. All 13 tools are always advertised in `tools/list`;\ncalling a tool the token wasn't granted for returns a tool error with code\n`insufficient_scope` naming the missing scope, and the fix is to re-authorize\nwith the broader scope. Scope gating applies only to hosted OAuth —\n`ak_live_` API keys and local stdio remain full-access, using\n`--allow-destructive` / confirmation flags instead.\n\n## Framework integrations\n\nThe Python package ships optional adapters for\n[OpenAI Agents SDK](./python/examples/openai_agents) (`pip install\n'artifacta-mcp[openai-agents]'`) and\n[LangChain/LangGraph](./python/examples/langchain) (`pip install\n'artifacta-mcp[langchain]'`).\n\n## Documentation\n\nFull docs at [docs.artifacta.io/mcp/overview](https://docs.artifacta.io/mcp/overview).\n\n## Development\n\n```bash\n# TypeScript\ncd typescript && npm install && npm test\n\n# Python\ncd python && python -m venv .venv && source .venv/bin/activate\npip install -e '.[dev]' && pytest\n```\n\nThis repository is published from the Artifacta monorepo; issues and PRs are\nwelcome here.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n",
  "bytes": 5928,
  "sha": "bfdef7d0d059ddd1845af8809dbf6d7ee19ad9d1bf1931ffe34149e4ce9da97c",
  "repo_slug": "sagapeak/artifacta-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_artifacta_mcp_51f7467b/readme"
}