MCP connector
Vinssi serves a remote MCP server at https://vinssi.ai/mcp. Add that URL as a custom connector. The server speaks Streamable HTTP. Sign-in is OAuth through Clerk at https://clerk.vinssi.ai. This page is also in Finnish.
The connector acts as you, in your workspace. It can read the workspace, list and create projects, connect a GitHub repository, deploy, read deployment status and build logs, roll back a healthy deployment, and publish or delete Vinssi Pages. It does not expose secret-management tools. Build logs redact known environment values and recognizable credentials before returning bounded output. Avoid writing secrets to application logs. It does not start checkout. If a project needs a plan, the tool says so and links to vinssi.ai/pricing.
Repository deploys are GitHub only. The Vinssi GitHub App has to be installed and allowed to see the repository. connect_repo takes owner/name. A repository on another host cannot be connected.
Add the connector
Use https://vinssi.ai/mcp as the server URL. When the client opens a browser, sign in to Vinssi and approve the request.
Claude
In Claude, open Settings, then Connectors, and add a custom connector. Paste https://vinssi.ai/mcp. Claude's redirect URL is https://claude.ai/api/mcp/auth_callback. Claude Code also uses a loopback redirect on http://localhost or http://127.0.0.1 at any port, path /callback.
ChatGPT
In ChatGPT, turn on developer mode for apps if the account requires it, then add a connector by URL. Paste https://vinssi.ai/mcp. The redirect URL ChatGPT shows for this flow is https://chatgpt.com/connector_platform_oauth_redirect. A review submission may also show https://chatgpt.com/connector/oauth/{callback_id} from the OpenAI dashboard. That callback id is specific to the submission.
Cursor
In Cursor, open Settings, then MCP, and add a server by URL. Paste https://vinssi.ai/mcp. The same URL works in an MCP config file:
{
"mcpServers": {
"vinssi": {
"url": "https://vinssi.ai/mcp"
}
}
}
Cursor opens a browser for OAuth. A client that can only send a header can use a personal API token instead. See API and tokens.
Grok Bot
In Grok Bot, add a custom MCP connector and paste https://vinssi.ai/mcp. If the form asks for a server URL rather than a plugin repository, that address is the server.
Tools
| Tool | What it does |
|---|---|
get_workspace | Workspace name and remaining credit, in euro cents |
list_projects, get_project | Projects, status, GitHub repository, live URL |
create_project | Creates an empty project. It does not deploy |
connect_repo | Connects owner/name from the GitHub App. Replaces an existing connection |
deploy | Queues a deployment of the connected GitHub repository. Optional git ref |
get_deployment, get_build_logs, list_deployments | Status, the latest build log lines, recent deployments |
rollback | Queues a new deployment that restores a previous healthy one |
publish_page | Publishes files sent in the request and returns the live URL |
list_pages, delete_page | Lists sites, or deletes one |
publish_page takes files, each with path and content. encoding is utf8 (the default) or base64. The limit is 200 files and 5 MB of decoded content. A single HTML file is stored as index.html. Multiple files require index.html at the root; invalid input is rejected before a site is created. name is required for a new site. Pass siteId to replace what that URL serves. The previous version stays stored.
get_build_logs returns the last 200 lines unless you set tail. The maximum is 400 lines and about 64 KB of log data. Oversized individual messages are omitted. truncated indicates omitted output.
Limits
Limits are per workspace and shared with the dashboard, the CLI, and direct API calls.
| Action | Limit |
|---|---|
| Deploy and rollback | 20 per 5 minutes |
| Page publish | 60 per 5 minutes |
Try it locally
Run the API from the repo (bun run dev starts it on port 3000) and open MCP Inspector:
npx @modelcontextprotocol/inspector
Connect to http://localhost:3000/mcp. For a bearer token, create one with vinssi tokens create and send Authorization: Bearer vinssi_.... OAuth from Inspector uses the protected-resource metadata at http://localhost:3000/.well-known/oauth-protected-resource/mcp. That document points at the Clerk instance for this environment. A browser sign-in needs the client registered through CIMD, DCR, or manual registration, and the redirect URL Inspector prints. Use CIMD first; enable DCR for clients that require it. OAuth clients must be granted the custom vinssi:mcp scope in Clerk. Advertise that scope and assign it to the client; for dynamic clients that omit scopes, configure it as a default alongside offline_access. Until this configuration and the sign-in flow are verified, use a personal API token. Create that token in your own terminal and enter it privately in Inspector, never in an AI conversation.
A request with no token gets 401 and a WWW-Authenticate header that points at the metadata URL.
Authorization
OAuth access tokens need the resource-specific vinssi:mcp permission. Generic
identity scopes such as openid and profile do not authorize MCP tools. Session
and ID tokens are rejected. Missing or invalid tokens return 401; a valid OAuth
token without the required permission returns 403 with an insufficient-scope
challenge. A JWT access token with an explicit audience must name this MCP URL.
Each request is authorized separately against your workspace.