Provider REST API
SecurityConnect Claude to 1Password
Inventory the vaults and items a 1Password Connect server can reach, without reading any secret value. Toolspoke puts 8 of its actions behind one MCP endpoint that Claude, Cursor, and Codex all speak.
- Connection
- Provider REST API
- Authentication
- Connect server token
- Actions exposed
- 8
- Cost per call (typical)
- 1 credit
- Adapter
- Maintained by Toolspoke
Connected in three steps
- 1
Install 1Password
Open the marketplace in your workspace, add 1Password to the project your agents work in, and it appears on the gateway immediately.
- 2
Connect the credential
Authenticate with connect server token. Where to get one, and what it has to be able to reach, is the next section.
- 3
Point your agent at the gateway
Give your client one address, https://toolspoke.com/mcp. Claude Code takes it as a command, Claude and Claude Desktop add it as a custom connector, and Cursor, Codex and VS Code each read it from a config file of their own.
.mcp.json{
"mcpServers": {
"toolspoke": {
"type": "http",
"url": "https://toolspoke.com/mcp"
}
}
}One block covers every tool you have installed. 1Password shows up in the client as soon as your policy allows it, and so does everything else you install later.
Where the address goes, per client
- Claude Code
Run it in your project, then /mcp to sign in
claude mcp add --transport http toolspoke https://toolspoke.com/mcp- Claude and Claude Desktop
Settings, then Connectors, then Add custom connector
https://toolspoke.com/mcp- Cursor
~/.cursor/mcp.json, or .cursor/mcp.json for one project
{ "mcpServers": { "toolspoke": { "url": "https://toolspoke.com/mcp" } } }- Codex
~/.codex/config.toml
[mcp_servers.toolspoke] url = "https://toolspoke.com/mcp"- VS Code
.vscode/mcp.json, or the MCP: Add Server command
{ "servers": { "toolspoke": { "type": "http", "url": "https://toolspoke.com/mcp" } } }
What 1Password asks for
Connect server token. You provide it once, when you install the connector. Toolspoke encrypts it at rest and decrypts it only for the length of a single call, and the gateway attaches it to the outbound request itself, so it is never part of the arguments an agent sends.
- Connect server URLRequired
- The root address of your 1Password Connect server, with no trailing path. The API lives under /v1 there, which this connector adds itself. It has to be reachable from this gateway - a Connect server bound to localhost on your laptop is not.
- https://connect.acme.internal:8080
- Connect tokenRequired
- 1Password → Developer → Other → Connect Server → your server → New Token. The vaults you tick while creating the token are the whole of what this connection can ever see, so tick only the ones an agent should be able to inventory - that choice is enforced by 1Password itself and not by anything here. The token is shown once.
- eyJhbGciOi…
What Claude can do in 1Password
8 actions, each one declared and named by the connector rather than discovered at runtime. A workspace policy grants a person all of them, a hand-picked selection, everything on the read side, everything on the write side, or none.
- Reads
- 8Reads
- Writes
- 0Writes
- Destructive
- 0Destructive
Reads
8Fetches data and changes nothing.
list_vaultsList the vaults this Connect token can reach, with each one's id, name, description, type and item count. Call it first - every item operation needs a vault id, and the list is also the honest statement of this connection's reach: a vault that was not ticked when the token was issued does not appear here and cannot be reached by any other action. `filter` takes a SCIM-style expression on the name only, e.g. name eq "Staging".
get_vaultFetch one vault by id, with its name, description, type and item count. Use it to confirm which vault an id refers to before listing what is in it. Vault types are PERSONAL, USER_CREATED, EVERYONE and TRANSFER.
list_itemsList the items in one vault, with each one's id, title, category, tags, linked URLs and timestamps. This endpoint returns item overviews and never carries field values, so it is the safe way to see what a vault holds: which credentials exist, what they are called, what they are for, and when they were last changed. Categories include LOGIN, PASSWORD, API_CREDENTIAL, SERVER, DATABASE, SSH_KEY, SECURE_NOTE and DOCUMENT. Use search_items to narrow by title or tag rather than paging through a large vault.
search_itemsFind items in one vault by title or tag, without paging through everything. `filter` is a SCIM-style expression Connect accepts on those two properties only: title eq "Production database", or tag eq "billing". Like list_items it returns overviews and no field values. This is the operation to reach for when the question is "where is the credential for X" - it answers where, and nothing here answers what.
get_item_metadataRead one item's metadata - its title, category, tags, linked URLs, version, and who last edited it and when. It is named metadata rather than get_item because that is exactly what it returns: 1Password's own endpoint answers with the whole item, and this operation strips `fields`, `sections` and `files` out of the response inside the gateway, before an agent sees it and before anything is written to the audit log. There is therefore no password, no token, no private key and no note body in the result, and no argument to this operation can put one there. If a value genuinely has to be used, a person retrieves it from 1Password; this connector's job is to say where it lives, not to hand it over. The response is withheld from the audit log as well, so not even the metadata accumulates a second copy.
list_item_filesList the files attached to one item, with each file's id, name and size in bytes. Names and sizes only: the `content` key is stripped from the response and this connector does not expose the `inline_content` parameter that would make Connect fill it in, so an attached certificate, key file or recovery-code document is visible as an entry and never as bytes. Useful for answering "is the private key stored alongside this server record" without retrieving it.
list_activityRead the Connect server's own request log - which token made which request, against which vault or item, when, from which address, and whether it was allowed. This is how to answer "what has actually been read through this Connect server", including by this connection itself. Page with `limit` and `offset`. Withheld from the audit log because each entry names an actor and the address they called from.
get_healthReport the Connect server's own state - its name, version, and the status of each service it depends on, such as the sync process and its local database. Use it when a call fails to tell "the Connect server is unwell" apart from "the token cannot reach that vault". It is served at the server root rather than under /v1, and it says nothing about any vault or item.
What it will not do
Enforced by the gateway rather than left to convention, which is why each of these can be stated flatly.
- It cannot call anything else
- The 8 actions above are the whole of it. A call to any other name is refused before it reaches 1Password rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time.
- It only reads
- Every action here reads. Nothing this connector can do changes anything in 1Password.
- It reaches no further than your credential
- Toolspoke holds no access to 1Password of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either.
- It never hears from 1Password
- Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in 1Password. An agent has to ask.
- It does not smooth over provider limits
- Toolspoke does not retry, queue or back off around 1Password's own rate limits. A call that 1Password refuses comes back to the agent as a failed call.
Before you connect it
What can Claude do in 1Password?
8 named actions: 8 that only read. They include list_vaults, get_vault and list_items. Nothing outside that list is reachable: the connector declares each operation by name rather than proxying whatever an agent asks for.
What credentials does the 1Password connector need?
Connect server token. The connector asks for connect server url and connect token. Values are encrypted at rest and attached to the outbound request by the gateway, so they are never part of the arguments an agent sends and never reach the audit log.
Does the 1Password connector work with Cursor and Codex, or only Claude?
Any client that speaks MCP, and every one of them gets the same 8 actions. There is a single address, https://toolspoke.com/mcp. Claude Code adds it with claude mcp add --transport http, Claude and Claude Desktop take it as a custom connector in settings, Cursor reads it from .cursor/mcp.json, Codex from ~/.codex/config.toml, and VS Code from .vscode/mcp.json. Each of them signs in to the gateway itself, so there is no key to paste.
What does the 1Password connector not do?
The 8 actions above are the whole of it. A call to any other name is refused before it reaches 1Password rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time. Every action here reads. Nothing this connector can do changes anything in 1Password. Toolspoke holds no access to 1Password of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either. Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in 1Password. An agent has to ask. Toolspoke does not retry, queue or back off around 1Password's own rate limits. A call that 1Password refuses comes back to the agent as a failed call.
Can I limit which actions an agent can call?
Yes, in two places. The project switches 1Password's actions on and off one at a time, for everyone in the project at once, and the screen groups them by read, write and destructive so turning off everything that deletes is one click. An individual agent key can then be narrowed further, to particular toolkits in a project and to particular actions in a toolkit. Whatever it was granted, a key never reaches a project its owner cannot.
What gets recorded when an agent calls 1Password?
Every attempt, with the agent that made it and the person that agent belongs to, the full request payload, the response payload, the status, the duration, and the credits spent. Values whose key names a secret are masked out before the record is shown to anyone. An operation the connector marks as not retained never has its response body written at all, so the gateway keeps no second copy of what was read.