Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Description from the maker (original English)
Find, document and execute authenticated API calls across 700+ apps via one MCP server
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ONE_SECRET, ONE_PERMISSIONS, ONE_CONNECTION_KEYS, ONE_ACTION_IDS, ONE_KNOWLEDGE_AGENT, ONE_IDENTITY, ONE_IDENTITY_TYPEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.withone.ai/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"withone": {
"command": "npx",
"args": [
"-y",
"@withone/mcp"
],
"env": {
"ONE_SECRET": "your-value",
"ONE_PERMISSIONS": "your-value",
"ONE_CONNECTION_KEYS": "your-value",
"ONE_ACTION_IDS": "your-value",
"ONE_KNOWLEDGE_AGENT": "your-value",
"ONE_IDENTITY": "your-value",
"ONE_IDENTITY_TYPE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http withone https://mcp.withone.ai/mcpclaude mcp add withone --env ONE_SECRET=your-value --env ONE_PERMISSIONS=your-value --env ONE_CONNECTION_KEYS=your-value --env ONE_ACTION_IDS=your-value --env ONE_KNOWLEDGE_AGENT=your-value --env ONE_IDENTITY=your-value --env ONE_IDENTITY_TYPE=your-value -- npx -y @withone/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"withone": {
"url": "https://mcp.withone.ai/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"withone": {
"command": "npx",
"args": [
"-y",
"@withone/mcp"
],
"env": {
"ONE_SECRET": "your-value",
"ONE_PERMISSIONS": "your-value",
"ONE_CONNECTION_KEYS": "your-value",
"ONE_ACTION_IDS": "your-value",
"ONE_KNOWLEDGE_AGENT": "your-value",
"ONE_IDENTITY": "your-value",
"ONE_IDENTITY_TYPE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"withone": {
"type": "http",
"url": "https://mcp.withone.ai/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"withone": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@withone/mcp"
],
"env": {
"ONE_SECRET": "your-value",
"ONE_PERMISSIONS": "your-value",
"ONE_CONNECTION_KEYS": "your-value",
"ONE_ACTION_IDS": "your-value",
"ONE_KNOWLEDGE_AGENT": "your-value",
"ONE_IDENTITY": "your-value",
"ONE_IDENTITY_TYPE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.withone.ai/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
ONE_PERMISSIONS envONE_CONNECTION_KEYS envONE_ACTION_IDS envONE_KNOWLEDGE_AGENT envONE_IDENTITY envONE_IDENTITY_TYPE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain withone.ai (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ONE_SECRET
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (2.0.0) reached the registry 37 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent-Native Google Calendar - manage events, sync, and public booking
Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
One MCP Server
Website · Docs · Dashboard · Changelog · X · LinkedIn
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.
npm install -g @withone/cli
one 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.
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"
The server exposes three MCP tools:
| Tool | Description |
|---|---|
list_one_integrations | List available platforms and active connections, each with the access it confers (full, methods, or specific actions) |
find_one_actions | Find 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_action | Execute an API action on a connected platform |
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.
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:
{
"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:
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.
If you prefer to configure the server manually instead of using one init, install the package directly:
npm install @withone/mcp
Then set the required environment variable:
ONE_SECRET=your-one-secret-key
Scope connections to a specific identity (e.g., a user, team, or organization):
ONE_IDENTITY=user_123
ONE_IDENTITY_TYPE=user
| Variable | Description | Values |
|---|---|---|
ONE_IDENTITY | The identifier for the entity (e.g., user ID, team ID) | Any string |
ONE_IDENTITY_TYPE | The type of identity | user, 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.
Fine-tune what the MCP server can see and do:
ONE_PERMISSIONS=read
ONE_CONNECTION_KEYS=conn_key_1,conn_key_2 ONE_ACTION_IDS=action_id_1,action_id_2 ONE_KNOWLEDGE_AGENT=true
| Variable | Type | Default | Description | ||
|---|---|---|---|---|---|
ONE_PERMISSIONS | read \ | write \ | admin | admin | Filter 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_AGENT | true \ | false | false | Remove 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:
access | When |
|---|---|
{ "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. |
If you used one init, the configuration below is already done for you. These examples are for reference or manual setups.
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.
Add the following to your MCP config:
~/Library/Application\ Support/Claude/claude_desktop_config.json · Windows: %APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": { "one": { "command": "npx", "args": ["@withone/mcp"], "env": { "ONE_SECRET": "your-one-secret-key" } } } }
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.
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.
MIT
For support, please contact support@withone.ai or visit https://withone.ai