Tvinejs logo

Tvinejs

Builds agent-accessible TypeScript web apps with a built-in Streamable HTTP MCP endpoint and typed application actions.

Install Tvinejs

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "tvinejs": {
      "command": "npx",
      "args": [
        "-y",
        "tvinejs"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command installed and started the server, which then stopped for configuration (such as an API key) that our sandbox does not have — expected for servers that connect to your account.

npx -y tvinejs

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked Today.

Overview

tvinejs is an agent-native TypeScript web framework combining a Warp backend with a Next.js and React frontend. Its built-in MCP endpoint exposes page reading, UI interaction, application actions, and optional control of a user-approved browser tab. Agents can also access Markdown, JSON, discovery, and action-manifest views through the app's regular HTTP routes. Reach for it when an application needs both human-facing pages and structured agent access through the same backend.

Use cases

  • Scaffold a full-stack TypeScript app with agent-facing routes
  • Expose application actions as typed MCP tools
  • Let agents read pages as Markdown or structured JSON
  • Drive a user's approved logged-in browser tab
  • Inspect and operate admin or data-driven application pages

Key features

  • Built-in Streamable HTTP MCP endpoint
  • Markdown and JSON page views
  • Typed tools generated from application actions
  • Consent-based browser tab control
  • Integrated ORM, migrations, auth, and admin
  • Shield traffic rules and agent access controls

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9h ago via OSV.dev · tvinejs (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads2kPackage downloads in the last 30 days.
Last commit9d agoMost recent push to the default branch.
Install checkRunsOur sandbox started it; it then asked for an API key or config.

How Tvinejs works

What tvinejs does

tvinejs provides a full-stack TypeScript application structure centered on agent access. Projects use a Warp backend and a Weft frontend built with Next.js and React, with the backend handling routing, typed API access, authentication, sessions, ORM operations, migrations, administration, background tasks, caching, email, audit logging, and middleware.

The framework presents the same application to browsers and AI agents. Normal page URLs can return Markdown or JSON representations, while the /mcp endpoint exposes the app through Model Context Protocol. Actions defined in an application become typed MCP tools, allowing an agent to use application operations without reproducing browser interactions.

How it works

An agent discovers the application through /llms.txt, /.well-known/mcp.json, and /.well-known/tvine.json. It connects to /mcp over Streamable HTTP, lists available tools, and normally starts with read_page using the Markdown view. The response provides page content and control identifiers that can be passed to ui or related operations.

The default mode runs against a server-side session. For workflows requiring a person's existing login, an agent can call request_control; the person approves from their own browser tab, after which the agent can read and operate that visible tab. The person can stop the connection, and the agent can call release to return control.

Applications also expose /tvine/manifest for action and parameter information. Without an MCP client, an agent can request a page with Accept: text/markdown or x-tvine: 1, retaining the session identifier returned by the first response.

Setup and configuration

The project requires Node.js 22.15 or newer and pnpm 9. A new application can be scaffolded with:

Terminal
npx tvinejs startproject my-app
cd my-app
pnpm exec tvine migrate
pnpm exec tvine createsuperuser
pnpm exec tvine dev

The development server runs on port 3000 by default, with administration at /admin and MCP at /mcp. The package is installed from npm as tvinejs, while its command and import-facing name is tvine; the documented alias form is npm install tvine@npm:tvinejs. Projects can also use pnpm exec tvine, or install the package globally when the command is needed outside a project.

Claude Code can connect through an .mcp.json entry using an HTTP URL such as http://localhost:4400/mcp. The tutorial setup demonstrates TVINE_SUPERUSER_USERNAME, TVINE_SUPERUSER_EMAIL, and TVINE_SUPERUSER_PASSWORD for noninteractive superuser creation.

Tools and capabilities

The built-in MCP tools include:

  • read_page for Markdown or compact JSON page representations.
  • expand for retrieving a complete section, such as all rows in a list.
  • ui for clicks, field entry, and selection operations, with up to 20 steps in one call.
  • do for invoking an action by identifier with parameters.
  • request_control and release for consent-based browser-tab control.
  • Application-specific typed tools generated from the actions defined by the project.

Tab control displays the agent's activity to the person and requires approval. Actions marked humanOnly remain unavailable to agents, while actions requiring confirmation continue to ask the person. Shield provides request scoring, bot challenges, blocking, rules, country rules, sandboxed JavaScript rules, and an analytics panel.

Limitations and notes

The server-side MCP mode uses its own session, so it is anonymous until the agent authenticates or supplies a token. Browser-tab control depends on the person approving access in their open tab and can be ended by either side. Refused requests use JSON responses with hints such as challenge_required, blocked, or rate_limited; the project recommends an honest User-Agent for agent traffic. Tvine applications run as one Node process combining the frontend and backend services.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Tvinejs

tvinejs is an MCP server that connects AI agents to Tvine applications through a Streamable HTTP endpoint. Its main tools read pages, expand content, operate UI controls, invoke typed application actions, and request or release control of a user's approved browser tab. It also exposes Markdown and JSON views over regular HTTP routes.

Run `npx tvinejs startproject my-app` to create a new project, then run its migration and development commands. Tvine requires Node.js 22.15 or newer and pnpm 9. The package is published as `tvinejs`, while the installed command is `tvine`.

Add an HTTP MCP entry pointing to the application's `/mcp` URL in `.mcp.json`. For a local app on port 4400, use `http://localhost:4400/mcp`; then run Claude Code from the directory containing that configuration.

The server provides `read_page`, `expand`, `ui`, `do`, `request_control`, and `release`, plus typed tools for actions defined by the application. `read_page` returns Markdown or compact JSON, while `ui` and `do` let agents interact with page controls or invoke actions directly.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTvinejs AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/tvinejs?style=directory)](https://allmcps.com/mcp/tvinejs)
HTML Embed
<a href="https://allmcps.com/mcp/tvinejs"><img src="https://allmcps.com/api/badge/tvinejs?style=directory" alt="Tvinejs on AllMCPs" /></a>