@artifactly/mcp
v0.1.16
Published
Agent-first artifact sharing for AI-created content.
Readme
Artifactly
Agent-first artifact sharing for AI-created content.
Production domain: artifactly.io
MVP direction
Artifactly is built around one core loop: an authenticated agent publishes an artifact, receives a stable share URL, and a human can view the artifact through a hosted page.
See docs/database.md for Supabase migration, owner seed, and API key setup.
Development
npm run typecheck
npm test
npm run lint
npm run buildnpm publishing
The MCP package is published as @artifactly/mcp.
Codex and other MCP clients can launch the server with either of these forms:
npx -y @artifactly/mcpnpx -y --package=@artifactly/mcp artifactly-mcpThe package also exposes a human CLI as artifactly.
Agent MCP usage
Typical MCP client config:
[mcp_servers.artifactly]
command = "npx"
args = ["-y", "@artifactly/mcp"]Robust explicit-bin form:
[mcp_servers.artifactly]
command = "npx"
args = ["-y", "--package=@artifactly/mcp", "artifactly-mcp"]Authentication flow:
- Run
artifactly_request_login_codewith an email address. - Run
artifactly_verify_login_codewith the emailed code. - Use
artifactly_auth_statusto inspect local credentials, or passvalidate: trueto confirm the saved API key with the Artifactly server. - Run
artifactly_logoutto clear local credentials.
Artifact workflow notes:
- Default visibility is
unlistedfor agent-created artifacts. - Supported visibility values are
public,unlisted,private, andgated. gatedartifacts can be published with anaccessListof allowed email addresses or updated later withartifactly_update_artifact.artifactly_list_artifactssupportslimit,cursor,visibility, andkindfilters and omits large artifact content by default.artifactly_get_artifactreturns full content by default, including base64/data URL file payloads. PassmetadataOnly: trueto omitcontentandstorageUrlfor bounded metadata reads.artifactly_update_artifactaccepts eithermarkdownorcontent, not both, and preserves text whitespace exactly while rejecting whitespace-only content updates.- To replace binary/file content, call
artifactly_update_artifactwithfilePathand optionalmimeType; the replacement file becomes the viewer source and clears old inline text content. - Pass
description: ""to clear a description. artifactly_publish_fileinfers MIME type from file extension unlessmimeTypeis supplied; explicitmimeTypewins.- Image MIME types such as
image/pngpublish askind: "image"and can be listed withkind: "image". - Files larger than 10 MB are rejected before upload to avoid large in-memory base64 payloads.
- App-hosting MCP tools wrap the public API-key routes for
web_appartifacts:artifactly_create_web_appcreates a placeholderweb_appartifact for the hosting tools.artifactly_list_app_env,artifactly_set_app_env, andartifactly_delete_app_envmanage redacted per-app env/secrets.artifactly_publish_app_bundleaccepts source files with inlinecontent,contentBase64, or localfilePathvalues and queues a background build job; Docker work does not run in the MCP call. When server-side worker dispatch is configured, the API triggers the Docker-capable GitHub Actions worker immediately and also keeps the scheduled worker fallback.artifactly_enqueue_app_buildqueues an image build for already-materialized source, andartifactly_get_app_build_statuspolls job status.artifactly_deploy_appdeploys an already-built image reference and returns runtime readiness details so a started Fly machine is not confused with a DNS/HTTP-reachable app.artifactly_list_custom_domains,artifactly_add_custom_domain, andartifactly_delete_custom_domainmanage custom-domain status and DNS instructions without exposing provider credentials.
- Requests time out after 30 seconds.
- This package currently exposes MCP tools only; resources, resource templates, and prompts are intentionally unsupported.
Manual publish from a logged-in maintainer account:
npm publish --access publicTrusted publishing uses .github/workflows/npm-publish.yml. Configure npm trusted publishing for:
- Package:
@artifactly/mcp - Repository:
erck0004/ai-project-artifactly - Workflow:
npm-publish.yml - Environment:
npm
After that, publish a new package version by bumping package.json, pushing the change, then publishing a GitHub Release for the matching commit/tag.
