MCP server
What it is
The Model Context Protocol (MCP) is an open standard that lets an AI assistant call tools in another service. Dotwick runs an MCP server so an assistant can list your codes, create and change them, tag them and read your scan numbers.
The server is a thin layer over this API. Each of its 11 tools calls one API route with that route's scope, under the same rate limits, so an assistant can do what its key could do by hand and nothing more. Nothing deletes: removing codes, folders and tags stays in the app and the REST API, so no prompt can break a printed code.
Before you start
MCP comes with API access (Pro, Business and Enterprise). In the app, open Settings → API and create a key with the scopes the assistant needs: the read scopes are enough for questions about your scans, and codes:write, folders:write or tags:write let it change things.
The assistant sees only the tools its key allows, so a read-only key never lists create_code. Every tool call counts as one API request against the key's rate limit and monthly total; listing the tools does not.
Connect it
The server speaks Streamable HTTP at https://api.dotwick.com/mcp. Send the key as a bearer token in the Authorization header.
claude mcp add --transport http dotwick https://api.dotwick.com/mcp \ --header "Authorization: Bearer $DOTWICK_API_KEY"Claude, ChatGPT and other clients
Claude Code adds the server with the command above. Clients that read an MCP configuration file, such as Cursor and VS Code, take the JSON block: keep the key in an environment variable and refer to it, never write it into the file.
ChatGPT and other apps that add a remote MCP server by its URL: enter the server URL, and send the key as a bearer token wherever the app asks for an API key or a header. An app that can only sign in with OAuth cannot connect yet. OAuth is planned; API keys are how the server is reached today.
Tools
Each tool maps to one API route and needs that route's scope. List tools return up to 50 items and a cursor for the next page.
list_codescodes:read · GET /v1/codesget_codecodes:read · GET /v1/codes/{id}create_codecodes:write · POST /v1/codesupdate_codecodes:write · PATCH /v1/codes/{id}list_foldersfolders:read · GET /v1/folderscreate_folderfolders:write · POST /v1/folderslist_tagstags:read · GET /v1/tagscreate_tagtags:write · POST /v1/tagstag_codescodes:write · POST /v1/codes/tagsanalytics_summaryanalytics:read · GET /v1/analytics/summaryanalytics_breakdownanalytics:read · GET /v1/analytics/breakdownLimits and safety
- The key keeps its folder restriction, IP ranges and rate limits: through MCP it sees only what it sees through the REST API.
- Nothing can be deleted through MCP.
- An assistant can be wrong. Ask it to say what it is about to change before it writes, and check the result in the app.