Replit MCP connector
OAuth 2.1/DCRDeveloper ToolsAIAutomationConnect to Replit MCP. Create, update, and inspect Replit apps from natural-language prompts, list your apps, and resolve apps by name from your AI...
Replit MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'replitmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Replit MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'replitmcp_list_apps',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "replitmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Replit MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="replitmcp_list_apps",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Update app using prompt — Update an existing Replit app using a natural-language description of the desired change
- Name resolve app by — Look up an existing Replit app by its exact name and return its repl ID and URL for use in other tools
- Preview replit widget start app — Internal Replit widget tool that starts an app preview session for a given repl
- Get replit widget — Internal Replit widget tool that retrieves the preview URL for a running repl build
- List apps — List the authenticated user’s Replit apps, most recently updated first, with optional name filtering
- Create app from prompt — Create a new Replit app from a natural-language description in the authenticated user’s account
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
replitmcp_ask_question#Ask the Replit Agent a question about an app's codebase or behavior without modifying it. Use this for explanations and debugging, not for making changes.3 params
Ask the Replit Agent a question about an app's codebase or behavior without modifying it. Use this for explanations and debugging, not for making changes.
questionstringrequiredThe question to send to Replit Agent. This question will be visible by the user if they open their Replit App in Replit, so try to keep it in the same language that the user communicated in with you.replIdstringrequiredThe replId (a UUID) of the user's Replit App being queried. Get it from create_app_from_prompt (for an app created in this conversation), resolve_app_by_name (for an app the user named exactly), or list_apps (when the user picked one from their app list).policystringoptionalIgnored. Don't waste tokens sending this.replitmcp_create_app_from_prompt#Create a new Replit app from a natural-language description in the authenticated user's account.5 params
Create a new Replit app from a natural-language description in the authenticated user's account.
app_stackstringrequiredThe type of project to create. Use "react_website" for websites, web apps, dashboards, interactive demos, and any web-based experience (this is the default). Use "mobile_app" only when the user explicitly wants a native mobile app. Use "design" for UI/UX design prototypes. Use "slides" for slide decks and presentations. Use "animation" for motion graphics and animated videos. Use "data_visualization" for charts, graphs, and data dashboards. Use "3d_game" for 3D games. Use "document" for written documents and reports. Use "spreadsheet" for spreadsheet-based projects.appDescriptionstringrequiredDescribe the user's Replit App's intended functionality in natural language with enough detail for Replit Agent to understand what their Replit App should do, without restating every part of the conversation. Use natural language only—Replit Agent will handle implementation.attachmentSummarystringoptionalIf attachments are provided, summarize only the essential details needed to understand the request, kept to a few lines. Leave null if no attachments.userQuotesstringoptionalImportant details from the user's messages not fully captured in appDescription—copy their exact words, do not paraphrase. Use quotation marks: "exact quote". Leave null if appDescription covers everything.userSpecifiedAppNamestringoptionalApp name provided directly by the user, if any. Leave this null when the user did not specify a name in their own words.replitmcp_list_apps#List the authenticated user's Replit apps, most recently updated first, with optional name filtering.2 params
List the authenticated user's Replit apps, most recently updated first, with optional name filtering.
limitintegeroptionalOptional maximum number of apps to return (default 25, capped at 50).querystringoptionalOptional case-insensitive substring to filter the user's apps by title. Omit to list the user's most recently updated apps.replitmcp_replit_widget_get_auth_token#Internal Replit widget tool that retrieves an auth token for a given repl. Not intended for direct use.2 params
Internal Replit widget tool that retrieves an auth token for a given repl. Not intended for direct use.
replIdstringoptionalNo description.tracingobjectoptionalNo description.replitmcp_replit_widget_get_preview_url#Internal Replit widget tool that retrieves the preview URL for a running repl build. Not intended for direct use.5 params
Internal Replit widget tool that retrieves the preview URL for a running repl build. Not intended for direct use.
enableHeliumbooleanrequiredNo description.gitShastringrequiredNo description.replIdstringrequiredNo description.timestampstringrequiredNo description.tracingobjectoptionalNo description.replitmcp_replit_widget_start_app_preview#Internal Replit widget tool that starts an app preview session for a given repl. Not intended for direct use.5 params
Internal Replit widget tool that starts an app preview session for a given repl. Not intended for direct use.
previewUrlstringrequiredNo description.riverGurlstringrequiredNo description.riverTokenstringrequiredNo description.replIdstringoptionalNo description.tracingobjectoptionalNo description.replitmcp_resolve_app_by_name#Look up an existing Replit app by its exact name and return its repl ID and URL for use in other tools.1 param
Look up an existing Replit app by its exact name and return its repl ID and URL for use in other tools.
namestringrequiredThe name of the user's Replit App to resolve. Matched against the app's title using a case-insensitive exact comparison; substrings, prefixes, and fuzzy matches are NOT supported. Pass the exact name as the user said it.replitmcp_update_app_using_prompt#Update an existing Replit app using a natural-language description of the desired change.6 params
Update an existing Replit app using a natural-language description of the desired change.
changeDescriptionstringrequiredDescribe the requested change to the user's Replit App in natural language, providing enough detail for Replit Agent to understand what should be updated without repeating the entire conversation. Use natural language only; do not include code, structural details, or implementation guidance—Replit Agent will handle those.replIdstringrequiredThe replId (a UUID) of the user's Replit App being updated. Get it from create_app_from_prompt (for an app created in this conversation), resolve_app_by_name (for an app the user named exactly), or list_apps (when the user picked one from their app list).attachmentSummarystringoptionalIf attachments are provided, summarize only the essential information needed to support the update, kept to a few lines. Leave null if no attachments.policystringoptionalIgnored. Don't waste tokens sending this.replUrlstringoptionalThe replUrl (a URL) of the user's Replit App being updated, as returned by create_app_from_prompt, resolve_app_by_name, or list_apps.userQuotesstringoptionalImportant details from the user's messages not fully captured in changeDescription—copy their exact words, do not paraphrase. Use quotation marks: "exact quote". Leave null if changeDescription covers everything.