Artifacta MCP Server
The Artifacta MCP Server is an artifact store for AI agents, enabling them to persist, manage, and share run outputs (files, reports, datasets, build results) across sessions with content-hash deduplication and secure access.
Verify identity & quota (
whoami): Confirm authentication and retrieve tenant info, plan tier, storage usage, request counts, and rate limits.Upload artifacts (
store_artifact): Upload via inline base64 (≤10 MB) or local file path (≤500 MB), tagged with session/agent IDs and custom metadata. Supports idempotency keys for crash-safe retries.Upload large files (
request_upload_url+complete_upload): Two-phase upload for files up to 5 GB — reserve a presigned R2 PUT URL, upload directly, then finalize (Pro plan only).Fetch artifact metadata (
get_artifact): Retrieve filename, content type, size, content hash, session/agent IDs, custom metadata, expiry, and timestamps for a specific artifact.Download artifacts (
get_artifact_download_url): Generate a short-lived (1-hour) presigned URL to download artifact bytes directly from Cloudflare R2.List & filter artifacts (
list_artifacts): Filter by session, agent, filename, content type, date ranges, or custom metadata key/value pairs, with cursor-based pagination.List sessions (
list_sessions): View active sessions with artifact counts, seal status, and activity timestamps.Seal sessions (
seal_session): Lock a session to prevent further artifact uploads.Create public share links (
create_download_link): Generate stable, expiring public links for sharing artifacts with humans (requires--allow-destructive).Delete artifacts (
delete_artifact): Soft-delete an artifact (requires write confirmation).Safety: Local file uploads are path-confined to an allow-list; destructive tools are gated behind
--allow-destructive.
Provides optional integrations for LangChain/LangGraph to persist and share artifacts from agent runs.
Provides optional integrations for LangChain/LangGraph to persist and share artifacts from agent runs.
Provides adapters for the OpenAI Agents SDK to enable AI agents to store and retrieve artifacts.
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:
Directory | Package | Runtime |
Node 20+ | ||
Python 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@artifactaThis 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). See the
plugin setup guide.
Related MCP server: pindoc
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/mcpOn 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
Tool | Description |
| Verify credentials; returns tenant and plan info |
| Upload an artifact from inline content or a local path |
| Two-phase presigned upload for large files |
| Fetch artifact metadata by ID |
| Get a presigned download URL (1h expiry) |
| List/filter artifacts by session, agent, or metadata |
| List active sessions |
| Seal a session so no further artifacts can be added |
| Create a public expiring share link (gated behind |
| Soft-delete an artifact (gated behind write confirmation) |
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.
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]' && pytestThis repository is published from the Artifacta monorepo; issues and PRs are welcome here.
License
MIT — see LICENSE.
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SagaPeak/artifacta-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server