The upload tool exists for a specific failure: passing Base64 in a request body breaks once the file is large, so document creation gets its own call with the fields that matter — folder, signers, approval skip. Everything past documents is unmodelled, which cuts both ways: nothing in the API is out of reach, and you want the API reference in context because the five verb tools take a raw path.
A thin client for the freee Sign API: an OAuth handshake, a file-upload path for creating documents, and five verb-shaped passthrough calls for everything the server does not model. It is the electronic-contract half of freee's MCP package, which also carries servers for the accounting, HR, invoicing, project, sales, IT-management and contractor APIs.
- OAuth handled in three tools: start the flow once, check the current authentication state, clear the stored credentials
- Document creation straight from a local file path, posting to /v1/documents/uploads or /v1/pdf_documents, with folder, title, signer count and an approval-skip option
- The rest of the API by path — GET, POST, PUT, PATCH and DELETE, each taking a path, a query and where relevant a body
- Requests validated against the OpenAPI schema and the access token attached before they go out
- A report of the running server's own details, for confirming which build is answering
A freee account that can complete the freee Sign OAuth flow, and the documents you want to send as local files. The quickest path is freee's own remote server at https://mcp.freee.co.jp/mcp, which needs no local setup. To run it yourself: Node.js, an application registered in the freee app store with the callback URL http://127.0.0.1:54321/callback, and `npx freee-mcp configure`, whose wizard stores the credentials, runs OAuth with PKCE and picks the business office. freee publishes a companion Agent Skill carrying the API reference, which is what keeps the raw-path calls from being guesswork. Apache-2.0 licensed.
One command plus a key — npx --package=freee-mcp -- freee-sign-mcp configure, then supply credentials
