io.artifacta/mcp

Official registry AI and agents

Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http io-artifacta-mcp 'https://mcp.artifacta.io/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "io-artifacta-mcp": {
            "type": "http",
            "url": "https://mcp.artifacta.io/mcp"
        }
    }
}
NPM package @artifacta-mcp/mcp
Claude Code
claude mcp add io-artifacta-mcp -e 'ARTIFACTA_API_KEY=<your artifacta_api_key>' -- npx -y @artifacta-mcp/mcp@1.0.4
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "io-artifacta-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@artifacta-mcp/mcp@1.0.4"
            ],
            "env": {
                "ARTIFACTA_API_KEY": "<your artifacta_api_key>"
            }
        }
    }
}

Environment variables

  • ARTIFACTA_API_KEY required secret Artifacta API key (ak_live_...) from https://app.artifacta.io/dashboard/keys
PYPI package artifacta-mcp
Claude Code
claude mcp add io-artifacta-mcp -e 'ARTIFACTA_API_KEY=<your artifacta_api_key>' -- uvx artifacta-mcp==1.0.4
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "io-artifacta-mcp": {
            "command": "uvx",
            "args": [
                "artifacta-mcp==1.0.4"
            ],
            "env": {
                "ARTIFACTA_API_KEY": "<your artifacta_api_key>"
            }
        }
    }
}

Environment variables

  • ARTIFACTA_API_KEY required secret Artifacta API key (ak_live_...) from https://app.artifacta.io/dashboard/keys

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Artifacta MCP Server
  2. Install as a Claude Code plugin
  3. Quick start
  4. Tools
  5. Framework integrations
  6. Documentation
  7. Development
  8. License

Artifacta MCP Server

Official MCP server for Artifacta — an artifact store purpose-built for AI agents. Agents persist run outputs (files, reports, datasets, build results) with session and agent metadata, hand them off across sessions, and share them via expiring download links. Content-hash dedup means re-storing the same bytes is free.

Listed in the official MCP registry as io.artifacta/mcp.

Two implementations with the same tool surface, error contract, and path-confinement engine:

DirectoryPackageRuntime
typescript/@artifacta-mcp/mcpNode 20+
python/artifacta-mcpPython 3.10+

Install as a Claude Code plugin

For Claude Code, the fastest path is the plugin marketplace this repo doubles as — it wires up the hosted server and a skill that persists run outputs automatically:

/plugin marketplace add SagaPeak/artifacta-mcp
/plugin install artifacta@artifacta

This bundles the same hosted MCP connection as the Quick start below plus the persisting-outputs skill (/artifacta:persisting-outputs, or it auto-triggers when a session has outputs worth saving). Update the plugin with /plugin marketplace update artifacta. See the plugin setup guide.

Quick start

The fastest way to connect is the hosted server — no install, no API key:

claude mcp add --transport http artifacta https://mcp.artifacta.io/mcp

On first use your client self-registers via OAuth Dynamic Client Registration (PKCE) and opens a browser to authorize — no ak_live_ key to copy or store. See the hosted setup guide.

Local / CI (stdio)

For headless, air-gapped, or CI environments where a browser OAuth flow isn't available, run the package locally over stdio with an API key. Get a key at app.artifacta.io/dashboard/keys, then add to your MCP client config (Claude Desktop, Claude Code, Cursor, or any MCP client):

{
  "mcpServers": {
    "artifacta": {
      "command": "npx",
      "args": ["-y", "@artifacta-mcp/mcp"],
      "env": {
        "ARTIFACTA_API_KEY": "ak_live_..."
      }
    }
  }
}

Or run the Python implementation with pipx run artifacta-mcp.

See the per-package READMEs for config-file profiles, path confinement (--allow-path), destructive-tool gating (--allow-destructive), and troubleshooting: TypeScript · Python.

Tools

ToolDescription
whoamiVerify credentials; returns tenant and plan info
store_artifactUpload an artifact from inline content or a local path
request_upload_url / complete_uploadTwo-phase presigned upload for large files
get_artifactFetch artifact metadata by ID
get_artifact_download_urlGet a presigned download URL (1h expiry)
list_artifactsList/filter artifacts by session, agent, or metadata
list_sessionsList active sessions
seal_sessionSeal a session so no further artifacts can be added (gated behind --allow-destructive)
create_download_linkCreate a public expiring share link (gated behind --allow-destructive)
delete_artifactSoft-delete an artifact (gated behind --allow-destructive, same gate as create_download_link)
publish_artifactPublish an artifact as a public page at artifacta.io/a/{slug} (Artifact Pages); idempotent, unlisted by default
unpublish_artifactTake down an artifact's public page; the artifact itself is untouched; idempotent

Plus MCP resources for whoami, artifact metadata, artifact bytes, and sessions.

Safety defaults: local-file uploads are confined to an explicit --allow-path allow-list, and destructive tools (public share links, deletes, session seals) are hidden from clients that can't confirm writes unless --allow-destructive is passed. publish_artifact and unpublish_artifact are idempotent write operations, not destructive ones — they are not gated behind --allow-destructive.

Hosted OAuth connections (mcp.artifacta.io) add a second layer: the consent screen grants one of three scopes — artifacts:read ⊆ artifacts:write ⊆ artifacts:destroy. All 13 tools are always advertised in tools/list; calling a tool the token wasn't granted for returns a tool error with code insufficient_scope naming the missing scope, and the fix is to re-authorize with the broader scope. Scope gating applies only to hosted OAuth — ak_live_ API keys and local stdio remain full-access, using --allow-destructive / confirmation flags instead.

Framework integrations

The Python package ships optional adapters for OpenAI Agents SDK (pip install 'artifacta-mcp[openai-agents]') and LangChain/LangGraph (pip install 'artifacta-mcp[langchain]').

Documentation

Full docs at docs.artifacta.io/mcp/overview.

Development

# TypeScript
cd typescript && npm install && npm test

# Python
cd python && python -m venv .venv && source .venv/bin/activate
pip install -e '.[dev]' && pytest

This repository is published from the Artifacta monorepo; issues and PRs are welcome here.

License

MIT — see LICENSE.

Frequently asked questions

What is io.artifacta/mcp?

Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.

How do I install io.artifacta/mcp?

It runs as a remote server. In Claude Code: claude mcp add --transport http io-artifacta-mcp 'https://mcp.artifacta.io/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.artifacta/mcp need an API key?

Yes. It expects ARTIFACTA_API_KEY, which you set in its configuration.

Is io.artifacta/mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.artifacta/mcp?

It is published by SagaPeak. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.