MCP ServerOther MCP clients

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 supportsUseSign-in
Remote servers (streamable HTTP) with OAuthRemote server with OAuthBrowser sign-in, scopes and mode on the consent screen
Remote servers with custom headersRemote server with an API keyAPI key from Settings > API keys
Only local servers started as a commandLocal stdio clientAPI key in an environment variable

Remote server with OAuth

Give your client the server URL:

https://mcp.freeinvoiceautomation.com/mcp

The 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:

.vscode/mcp.json
{
  "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.

1

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.

2

Send it as a bearer token

Configure your client to send the header Authorization: Bearer <your key> with every request to the server URL.

Generic client config
{
  "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):

Terminal
FIA_API_KEY=fia_your_key npx -y freeinvoiceautomation-mcp

Most clients take a command, arguments and environment variables:

Client config (stdio)
{
  "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: true for 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.