Skip to content
Farm.js v0.1.0 is releasedRead the announcement
Agent infrastructure

Deploy agents
Connect your tools.

Your agents, MCP servers, and website in one Farm.js codebase.

Ship it all from one repo.

farm deploy turns your agent/ folder, your API routes, and your pages into an agent, an MCP server, and a website, live together on your domain.

3 services live on your-app.com · one codebase

Readable, callable, checked.

Every layer an agent looks for, from robots.txt and Markdown to MCP and the WebMCP tools in your page, checked the way /agents/check does.

an agent opens your-app.com

One command, one origin.

farm dev starts your app with its agent and its tools beside it, all served from the origin you already use.

$ farm dev

Discovery isn't permission.

Every MCP call goes through your authorize(). A reader's token opens the read tools; only the writer's opens create_project.

Bearer demo-reader · authorize() checks the token
Available today

Agent-ready.
One config block.

Pages answer agents in Markdown by default, with llms.txt, JSON-LD and Open Graph built from your metadata. An mcp block exposes the tools you choose. Discovery never grants permission; your app still authorizes every action.

Agent runtimes[ v0.1.0 ]

Run agents beside your app.

integrations: { agent: eve() }

Register Eve or Cloudflare Agents in farm.config.ts. farm dev starts the runtime and serves its routes on your app's origin. In production they ship together on Vercel (Eve) or in one Worker built with the cloudflare-module preset (Cloudflare Agents). On other targets, deploy the runtime separately and set its origin; Farm proxies to it.

Agent integrations
Readable by default[ Default ]

Every page in Markdown.

curl -H "Accept: text/markdown" /pricing

Pages answer agents with a Markdown mirror, by .md suffix or Accept header, listed in llms.txt and described with JSON-LD by default. OpenAPI stays off until you turn it on in config.

Markdown mirrors
MCP tools[ Experimental ]

API routes as MCP tools.

mcp: { tools: [listProjects] }

Expose selected endpoints and standalone tools through one Streamable HTTP server. Each route keeps its validation and middleware, under one shared authorization policy.

MCP example
WebMCP[ Experimental ]

Tools inside the open page.

registerWebMCPTool(listProjects)

Components register named tools while the page is open. They call your same-origin APIs with the user's own session, in browsers that support WebMCP.

WebMCP plugin
What we're building next

From your codebase.
To the agent web.

We're building a home for your agents, their tools, and the websites they work with. Connected through the framework you already use.

Deployment

Your agents. Your codebase.

Deploy and manage agents alongside your Farm.js app, from the same codebase, with one shared place to follow each agent's lifecycle and status.

MCP & connections

One gateway for every MCP server.

Deploy MCP servers and connect compatible clients to them. Farm.js gathers your servers behind a single tool that orchestrates them on each client's behalf.

Agent-ready websites

A website agents can use.

Publish readable content and discoverable tool descriptions. Let compatible agents talk to your app, use approved actions, and receive results—not just read pages.

Observability

See the whole run.

Follow runs, tool calls, logs, and failures together in one timeline, from the first request to the final response, with the timing of each step.

Built for the open web

Your stack. Your permissions.

Bring the tools and agent frameworks you already use. The goal is to connect through standard APIs and MCP, with access you explicitly allow. Discovery helps agents understand your website; it never grants them permission to act.

This infrastructure is upcoming, not part of Farm.js v0.1.0. The waitlist is for updates and early access—not a deployment console.