Val Town

Official registry Data and databases

Deploy serverless TypeScript on Val Town: HTTP vals, cron, SQLite, email, OAuth.

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 val-town 'https://api.val.town/v3/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "val-town": {
            "type": "http",
            "url": "https://api.val.town/v3/mcp"
        }
    }
}

Documentation

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

Agent plugins for Val Town

Installs the Val Town MCP server and Skills for Claude Code, Codex, and Cursor.

Skills are markdown files with platform guidance for building on Val Town. Used by Val Town's own tools (Townie, the MCP server) and by AI coding agents. Skills include HTTP vals, crons, SQLite, email, OAuth, frontend, and API integrations.

Install

Installing the plugin makes platform skills available to your agent and registers the hosted Val Town MCP server (https://api.val.town/v3/mcp). On first use of an MCP tool, the agent runs the OAuth flow in your browser.

  1. Claude Code
  2. Codex
  3. Cursor
Claude Code

Install the Val Town plugin by running:

claude plugin install valtown@claude-plugins-official
Codex
codex CLI

First, run:

codex plugin marketplace add val-town/plugins

Then fire up codex and run:

/plugins

Search for Val Town, hit install, and it'll take you through the OAuth path.

Codex desktop app
  1. Click "Plugins" in the sidebar
  2. In the dropdown that says "Built by OpenAI" click "Add more +"
  3. Copy-paste https://github.com/val-town/plugins and select "Add marketplace"
Cursor

In Cursor, run:

/add-plugin valtown

Or in Cursor Settings, copy-paste https://github.com/val-town/plugins in the search box and select "Add to Cursor."

Contributing

Authoring skills

Skills live in plugin/skills/<name>/SKILL.md with YAML frontmatter:

---
name: http-endpoints
description: Use when building an HTTP val — a web endpoint, API route, webhook...
triggers: [http, endpoint, webhook, api, request, response]
---

# HTTP Endpoints

...guide body...
  • name (required) — must match the directory name; lowercase, hyphens, ≤64 chars.
  • description (required) — written as "Use when…"; this is how Claude decides to load the skill. ≤1024 chars.
  • triggers (optional) — keyword hints that boost searchSkills ranking; ignored by Claude Code's native loader.

Keep content audience-neutral: only platform knowledge true for every consumer. No product-flow or chat-only advice.

Then build:

npm install
npm run build   # generate src/generated/skills.ts, then tsc
npm test        # build + smoke tests

npm run generate validates every skill against both our schema and Claude Code's frontmatter constraints — a skill that wouldn't load in Claude Code fails the build.

Relationship to the Val Town monorepo

This package is the source of truth for skill content. The Val Town app and MCP server consume it as a dependency rather than holding their own copy. See docs/SKILLS_PLUGIN.md in the main repo for the full design.

Versioning

This repository uses Changesets for publishing. See their documentation for more information.

  • For each change that should trigger a new version, you should run npx @changesets/cli and fill out the interactive prompts to describe the changes. This will generate a new changeset in the .changesets directory.
  • Each change in that directory will prompt the release.yml GitHub action to create a new release PR.
  • Merging a release PR will automatically publish a new version of this module.
Configuration
Claude Code

The official Claude plugin marketplace pulls from .plugins/marketplace.json.

Codex

Codex reads the native marketplace at .agents/plugins/marketplace.json (and falls back to the Claude .claude-plugin/marketplace.json for compatibility).

Cursor

Cursor reads .cursor-plugin/marketplace.json and the per-plugin plugin/.cursor-plugin/plugin.json.

Frequently asked questions

What is Val Town?

Deploy serverless TypeScript on Val Town: HTTP vals, cron, SQLite, email, OAuth.

How do I install Val Town?

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

Does Val Town need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is Val Town open source?

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

Who maintains Val Town?

It is published by val-town. 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.