MCP Server
Other MCP clients
Connect any MCP client by server URL with OAuth or an API key, or run our local stdio client for clients that only start local servers.
Our MCP server follows the open Model Context Protocol, so any client that supports it can connect, not only the ones with their own guide. There are three ways to connect: the remote server with a browser sign-in, the remote server with an API key, and a small local client that runs on your machine over stdio. Pick the first one your client supports.
Choose a connection method
| Your client supports | Use | Sign-in |
|---|---|---|
| Remote servers (streamable HTTP) with OAuth | Remote server with OAuth | Browser sign-in, scopes and mode on the consent screen |
| Remote servers with custom headers | Remote server with an API key | API key from Settings > API keys |
| Only local servers started as a command | Local stdio client | API key in an environment variable |
Remote server with OAuth
Give your client the server URL:
https://mcp.freeinvoiceautomation.com/mcpThe transport is streamable HTTP. When the client first connects, our server asks it to sign in. The client opens our sign-in page in your browser; you sign in, pick the account, and approve the scopes and mode. The client then receives a token bound to your user and that one account.
Clients do not need to be registered with us in advance. We support OAuth client metadata documents (CIMD), where the client identifies itself with a URL that describes it, and PKCE, which protects the sign-in code. If your client asks for a client id and secret, leave them empty; if it insists on them, use an API key instead. See Authentication.
Example: VS Code
VS Code (with GitHub Copilot's agent mode) reads MCP servers from .vscode/mcp.json in your workspace, or from your user settings:
{
"servers": {
"freeinvoiceautomation": {
"type": "http",
"url": "https://mcp.freeinvoiceautomation.com/mcp"
}
}
}Start the server from the file or the MCP view, and sign in when your browser opens.
Other editors and apps
Most clients use a JSON entry with a name and a URL. The field may be called url, serverUrl or httpUrl depending on the client; check its docs for remote or HTTP servers. The values are always the same: name freeinvoiceautomation, URL https://mcp.freeinvoiceautomation.com/mcp.
Remote server with an API key
The remote server also accepts an API key instead of OAuth. This is useful for headless setups, shared machines, or when you want a key restricted to a few scopes or to some businesses.
Create a key
In the web app open Settings > API keys and create a key. Choose only the scopes the assistant needs, and keep the mode on draft_only. The key is shown once; copy it to your password manager or secret store. Creating keys needs the integrations.manage permission.
Send it as a bearer token
Configure your client to send the header Authorization: Bearer <your key> with every request to the server URL.
{
"mcpServers": {
"freeinvoiceautomation": {
"url": "https://mcp.freeinvoiceautomation.com/mcp",
"headers": { "Authorization": "Bearer fia_your_key" }
}
}
}Store the key in an environment variable or your client's secret settings rather than in a file you share or commit.
Local stdio client
Some clients can only start local MCP servers as a command and talk to them over standard input and output. For them we publish a thin stdio client, freeinvoiceautomation-mcp, on npm. It has no business logic of its own: it passes each tool call to our API with your API key, so it can do exactly what the key allows and nothing more.
Try it from a terminal (it needs Node.js):
FIA_API_KEY=fia_your_key npx -y freeinvoiceautomation-mcpMost clients take a command, arguments and environment variables:
{
"mcpServers": {
"freeinvoiceautomation": {
"command": "npx",
"args": ["-y", "freeinvoiceautomation-mcp"],
"env": { "FIA_API_KEY": "fia_your_key" }
}
}
}The stdio client and the CLI are the only parts of Free Invoice Automation published to npm.
Which tools you get
Every connection method exposes the same 28 tools, filtered by what your token or key may do. One tool, generate_pdf, needs no sign-in at all: it turns invoice details into a PDF and stores nothing, like the free invoice generator. Every other tool needs a signed-in token or an API key.
Checklist for any client
- The client supports MCP tools: everything our server offers is a tool.
- The URL ends in
/mcp. - For OAuth, the client can open a browser window and receive the redirect back.
- The client shows tool calls and asks you before running write tools. Our server adds its own safety on top: drafts first and
confirm: truefor sends and destructive tools. See Drafts and confirmations.
Troubleshooting
401 unauthenticated
The token or key is missing, wrong, expired or revoked. Check the Authorization header format: Bearer followed by a space and the key. Keys of a deactivated member stay revoked even after reactivation.
403 scope_missing
The key or token does not include the scope for that tool. Create a new key with the scope, or reconnect and approve it.
The client cannot connect at all
Check that it supports streamable HTTP. If it supports only local servers, use the stdio client.
428 confirmation_required
The tool needs confirm: true. The response includes a preview of what would happen. Show it to the user, then call again with confirm: true.