One

ai.withonePublished by withone.aiOfficial publisherv2.0.0Updated Oct 30, 2026

Find, document and execute authenticated API calls across 700+ apps via one MCP server

VerifiedStreamable HTTPWeb executableProductivity & WorkflowDeveloper Tools

Overview

AI-generated overview

One lets an assistant find, read documentation for, and execute authenticated API actions across 1000+ apps through a single MCP server, without managing…

What you can do
  • List connected platforms and connections, each with the access level it grants
  • Find the action for each operation a task needs, across platforms, with its documentation, and load more of a document or its alternatives
  • Execute an API action on a connected platform, such as reading Gmail messages, posting to Slack or listing Shopify products
  • Generate integration code for building forms, dashboards and tables against connected platforms
When to use it
Useful when an assistant should act across many SaaS platforms (email, chat, ecommerce, CRM, billing, project tools) without wiring up each API separately, and when you want one small tool surface instead of many per-app tools. Also suited to generating integration code against those platforms.
Requirements
Either the hosted remote endpoint with OAuth sign-in, or the local npm package run with npx, which needs Node.js 22.23.4+, 24.22.1+ or 26.12.1+ and the ONE_SECRET API key from the One dashboard. Optional variables scope access: ONE_PERMISSIONS, ONE_CONNECTION_KEYS, ONE_ACTION_IDS, ONE_IDENTITY, ONE_IDENTITY_TYPE, ONE_KNOWLEDGE_AGENT. Network access to One's API is required.
Before you install
The assistant can execute real API actions on connected platforms, including sending messages and writing data; by default no access-control variables are set, so full access and all tools are enabled. Set ONE_PERMISSIONS, ONE_CONNECTION_KEYS or ONE_ACTION_IDS to limit this, or ONE_KNOWLEDGE_AGENT to remove execution. ONE_SECRET is the sole credential and grants access to all connected platforms; older Node versions can expose it to interception, and ONE_ALLOW_UNPATCHED_NODE=1 keeps that…

Installation

In SourceWeft

  1. Open One in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.withone%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "one": {
      "type": "http",
      "url": "https://mcp.withone.ai/mcp"
    }
  }
}

README

[One MCP — Connect your agents to every app through a single MCP.]

One MCP Server

Website  ·  Docs  ·  Dashboard  ·  Changelog  ·  X  ·  LinkedIn

[npm version]

Connect your AI agents to 1000+ apps through a single MCP server. Find the actions a task needs with their documentation, and execute API calls across platforms, without having to manage OAuth tokens or API keys.

bash
npm install -g @withone/clione init

That's it. The One CLI will prompt you for your API key (get one from the One dashboard) and configure the MCP server for your environment: Claude Desktop, Cursor, Claude Code, Windsurf, or any MCP-compatible agent.

Capabilities

  • 1000+ platforms. Gmail, Slack, Shopify, HubSpot, Stripe, Linear, QuickBooks, and more.
  • Natural language execution. "read my last gmail email", "send a message to #general on Slack"
  • Code generation. "build a form to send emails using Gmail", "create a dashboard that lists my Linear projects"
  • No tool bloat. Only 3 tools exposed regardless of how many platforms or actions you connect. One call finds every action a task needs, across platforms, with its documentation, so your agent's context window stays clean.
  • Fine-grained access control. Restrict which actions, connections, and permission levels (read, write, admin) your agent has access to.
  • Secure by default. All requests proxied through One, secrets automatically redacted, no platform API keys to manage.

Examples

Execute actions directly:

"Get my last 5 emails from Gmail"

"Send a Slack message to #general: 'Meeting in 10 minutes'"

"Get all products from my Shopify store"

Generate integration code:

"Create a React form component that sends emails using Gmail"

"Build a dashboard that displays Linear users and their assigned projects with filtering"

"Create a paginatable table that fetches and displays QuickBooks invoices with search and sort"

Tools

The server exposes three MCP tools:

ToolDescription
list_one_integrationsList available platforms and active connections, each with the access it confers (full, methods, or specific actions)
find_one_actionsFind the action for every operation a task needs, across platforms, with its documentation, in one call; load fetches more of a document or an alternative's
execute_one_actionExecute an API action on a connected platform

Finding actions

find_one_actions takes one requests entry per operation, each a kebab-case platform and a short intent naming the operation alone ("send a message to a channel", not the message). A task describes the whole job in general terms, and an ai_model names the model asking; agents are asked to send both with every find, since the task helps tell similar actions apart. For each intent, One's decision model picks the action to use; the answer documents it, sets apart a substitute when the model was unsure, and lists a few alternatives. A platform no active platform has (clickup for click-up) is not searched: the answer names the platforms it may have meant, closest first, so the agent can ask again with the right one. Large documents come back as a digest; call find_one_actions again with load: [{ action_id, section }] for a section it left out, full: true for the whole document, or toc: true for its table of contents. ONE_ACTION_IDS, ONE_PERMISSIONS and ONE_CONNECTION_KEYS apply to every answer: an action they refuse is never offered, and when they refuse the model's pick, the next allowed candidate takes its place.

Upgrading from 1.x: search_one_platform_actions and get_one_action_knowledge are removed. find_one_actions replaces both.

Remote MCP Server

Prefer not to run anything locally? One hosts a remote MCP server at https://mcp.withone.ai/mcp. Point any MCP client that supports remote (HTTP) servers at that URL and authenticate with One via OAuth. There's no npm install and no ONE_SECRET to manage. You approve access in One's consent screen, where you can scope exactly which connections, actions, and permission levels the agent gets. Those choices are surfaced back to the agent through each connection's access field, so it knows what it can run without searching.

Add it to your client's MCP configuration. The endpoint speaks the Streamable HTTP transport:

json
{  "mcpServers": {    "one": {      "type": "http",      "url": "https://mcp.withone.ai/mcp"    }  }}

Some clients omit type and take the URL alone; UI-based clients (custom connectors) just need the URL itself. On first connect, your client opens a browser to authenticate and authorize with One. After that, the same three tools are available.

One-click install:

[Install in VS Code] [Install in VS Code Insiders] [Add to Cursor] [Open in Windsurf]

The Windsurf link opens One's page in the editor's MCP marketplace, which is served from the official MCP registry where One is published as ai.withone/mcp. Windsurf handles the OAuth sign-in itself once you install from that page.

Manual Installation

If you prefer to configure the server manually instead of using one init, install the package directly:

bash
npm install @withone/mcp

Then set the required environment variable:

bash
ONE_SECRET=your-one-secret-key

Identity Scoping

Scope connections to a specific identity (e.g., a user, team, or organization):

bash
ONE_IDENTITY=user_123ONE_IDENTITY_TYPE=user
VariableDescriptionValues
ONE_IDENTITYThe identifier for the entity (e.g., user ID, team ID)Any string
ONE_IDENTITY_TYPEThe type of identityuser, team, organization, project

When set, the MCP server will only return connections associated with the specified identity. This is useful for multi-tenant applications where you want to scope integrations to specific users or entities.

Access Control

Fine-tune what the MCP server can see and do:

bash
ONE_PERMISSIONS=readONE_CONNECTION_KEYS=conn_key_1,conn_key_2ONE_ACTION_IDS=action_id_1,action_id_2ONE_KNOWLEDGE_AGENT=true
VariableTypeDefaultDescription
ONE_PERMISSIONSread | write | adminadminFilter actions by HTTP method. read = GET only, write = GET/POST/PUT/PATCH, admin = all methods
ONE_CONNECTION_KEYS* or comma-separated keys*Restrict visible connections and platforms to specific connection keys
ONE_ACTION_IDS* or comma-separated IDs*Restrict visible and executable actions to specific action IDs
ONE_KNOWLEDGE_AGENTtrue | falsefalseRemove the execute_one_action tool entirely, forcing knowledge-only mode. find_one_actions then returns each chosen action's whole document with how to call it from code, and an Integration Code Guide (passthrough URL, x-one-* headers, ONE_SECRET / ONE_{PLATFORM}_CONNECTION_KEY env vars, backend-only placement) for writing application code

All defaults preserve current behavior. If no access control env vars are set, the server starts with full access and all tools available.

Whatever you configure here is surfaced back to the agent: list_one_integrations stamps each connection with an access field so the agent knows up front what it can run there, without spending a turn searching. It is one of:

accessWhen
{ "policy": "full" }No action allowlist and ONE_PERMISSIONS=admin — every action is runnable.
{ "policy": "methods", "methods": ["GET", ...] }No action allowlist, but ONE_PERMISSIONS is read/write — only these HTTP methods are runnable.
{ "policy": "actions", "actions": [{ "actionId", "title", "method" }] }ONE_ACTION_IDS is set — exactly these actions (the ones on that connection's platform) are runnable, so no search is needed.

Manual Configuration

If you used one init, the configuration below is already done for you. These examples are for reference or manual setups.

Standalone

bash
npx @withone/mcp

Requires Node.js 22.23.4+, 24.22.1+ or 26.12.1+. Older Node trusts the compromised eMudhra CA certificates (October 2026), so a network attacker could intercept ONE_SECRET. On an older Node the server still starts, but every tool returns an error with the command that updates Node for how it was installed. If you can't update yet, ONE_ALLOW_UNPATCHED_NODE=1 lets it call One anyway; you remain exposed while it is set.

Claude Desktop / Cursor

Add the following to your MCP config:

  • Claude Desktop: MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json · Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Cursor: Open the Cursor menu and select "MCP Settings"
json
{  "mcpServers": {    "one": {      "command": "npx",      "args": ["@withone/mcp"],      "env": {        "ONE_SECRET": "your-one-secret-key"      }    }  }}

Docker

bash
docker build -t one-mcp-server .docker run -e ONE_SECRET=your_one_secret_key one-mcp-server

All environment variables listed above can be passed as -e flags.

Security

All requests to third-party platforms are authenticated and proxied through One's API. The MCP server never handles OAuth tokens or platform API keys directly. The ONE_SECRET key is the sole credential required, and it is automatically redacted from all response payloads returned to clients. Sensitive headers are stripped from logged and returned request configurations.

License

MIT

Support

For support, please contact [email protected] or visit https://withone.ai

Source: README.md at commit b4b4a1a

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

4
  1. v2.0.0LatestOct 1, 2026
  2. v1.4.1Sep 25, 2026
  3. v1.4.0Sep 25, 2026
  4. v1.2.4Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts