The Replit MCP Server is in beta. Tools and behavior may change.
Replit’s MCP server lets external clients create, update, and manage full-stack applications on Replit using the Model Context Protocol. Powered by Replit Agent, it transforms natural language prompts into live, deployed apps.
Server details
| Property | Value |
|---|
| URL | https://replit-mcp.com/server/mcp |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.0 (handled automatically by MCP clients and SDKs) |
Requirements
For developers:
- An MCP client or SDK that supports Streamable HTTP transport
For builders (end users):
- A Replit account (Free, Core, Teams, or Enterprise)
Authentication
The server uses OAuth 2.1 with PKCE. MCP clients like Claude Code handle the entire flow automatically. If you’re building with an MCP client SDK, it handles discovery, dynamic client registration, PKCE, and token exchange — you provide the UX (browser redirect, callback handler, token storage). See the MCP authorization spec for details.
Connecting
Configure the server URL in your MCP client. Builders will complete the OAuth consent flow when they first connect.
MCP SDK (TypeScript):
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://replit-mcp.com/server/mcp"),
{ authProvider: yourOAuthProvider } // Implement the OAuthClientProvider interface
);
const client = new Client({ name: "my-client", version: "1.0.0" });
await client.connect(transport);
See the MCP TypeScript SDK documentation for details. The SDK handles the internal OAuth flow automatically.
Claude Code:
claude mcp add --transport http replit https://replit-mcp.com/server/mcp
The server exposes three public tools.
create_app_from_prompt
Create a new Replit App from a natural language description. Replit Agent immediately starts building the app.
| Parameter | Type | Required | Description |
|---|
appDescription | string | Yes | Natural language description of the app to build. |
app_stack | string (enum) | Yes | One of: "react_website", "mobile_app", "design", "slides", "animation", "data_visualization", "3d_game", "document", "spreadsheet". Use "react_website" for most web apps. |
userSpecifiedAppName | string | null | No | App name if provided by the user. |
userQuotes | string | null | No | Exact user quotes not fully captured in appDescription. |
attachmentSummary | string | null | No | Summary of essential details from attachments. |
Response:
{
"phase": "creating",
"replId": "d44d994b-96e1-4a1c-8085-88401b870a9a",
"turnId": "turn-id",
"replUrl": "https://replit.com/@username/App-Name",
"user": { "id": 12345, "username": "username" }
}
Agent builds the app asynchronously — direct the builder to the replUrl to track progress. Use replId and replUrl in subsequent tool calls.
update_app_using_prompt
Make changes to an existing Replit App. Use this to add features, fix bugs, or iterate on the app after it has been created.
| Parameter | Type | Required | Description |
|---|
replId | string (UUID) | Yes | The replId from create_app_from_prompt. |
changeDescription | string | Yes | Description of the change to make. |
replUrl | string | No | The replUrl from create_app_from_prompt. |
userQuotes | string | null | No | Exact user quotes not captured in changeDescription. |
attachmentSummary | string | null | No | Summary of attachment details. |
ask_question
Ask Replit Agent about the current app. Runs in discussion mode — it won’t modify the app. Use this to check build status, ask about the tech stack, or relay builders’ questions.
| Parameter | Type | Required | Description |
|---|
replId | string (UUID) | Yes | The replId from create_app_from_prompt. |
question | string | Yes | The question to send to Replit Agent. |
Troubleshooting
| Error | Cause | Fix |
|---|
MCP error -32001: Request timed out | Tool call took longer than the MCP timeout window. The operation is still running in the background. | Direct the user to the replUrl. Do not retry. |
"Replit was not able to build your Replit App." | Access token is not scoped to the MCP server resource. | Verify your auth provider is configured correctly. If building a custom OAuth flow, ensure the resource parameter is set to https://replit-mcp.com/server/mcp. |
"Not authenticated" | No valid session or token. | Re-authenticate through the OAuth flow. |