{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.1.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.1.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-12T22:30:13.067318Z","publishedAt":"2026-08-12T22:30:13.067318Z","updatedAt":"2026-08-12T22:30:13.067318Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.2.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-13T00:43:46.030372Z","publishedAt":"2026-08-13T00:43:46.030372Z","updatedAt":"2026-08-13T00:43:46.030372Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.3.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.3.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-13T18:04:12.514378Z","publishedAt":"2026-08-13T18:04:12.514378Z","updatedAt":"2026-08-13T18:04:12.514378Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.3.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.3.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-28T11:34:01.680935Z","publishedAt":"2026-08-28T11:34:01.680935Z","updatedAt":"2026-08-28T11:34:01.680935Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.4.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.4.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T00:21:44.819919Z","publishedAt":"2026-08-31T00:21:44.819919Z","updatedAt":"2026-08-31T00:21:44.819919Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.5.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.5.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T12:39:48.775643Z","publishedAt":"2026-08-31T12:39:48.775643Z","updatedAt":"2026-08-31T12:39:48.775643Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.5.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.5.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T13:31:11.288432Z","publishedAt":"2026-08-31T13:31:11.288432Z","updatedAt":"2026-08-31T13:31:11.288432Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.5.2","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.5.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-31T16:37:34.371841Z","publishedAt":"2026-08-31T16:37:34.371841Z","updatedAt":"2026-08-31T16:37:34.371841Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.6.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.6.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-04T22:20:39.757958Z","publishedAt":"2026-09-04T22:20:39.757958Z","updatedAt":"2026-09-04T22:20:39.757958Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.6.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.6.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T17:48:57.261316Z","publishedAt":"2026-09-10T17:48:57.261316Z","updatedAt":"2026-09-10T17:48:57.261316Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"0.7.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"0.7.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-17T23:35:49.028512Z","publishedAt":"2026-09-17T23:35:49.028512Z","updatedAt":"2026-09-17T23:35:49.028512Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.0.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.0.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-20T08:22:13.982904Z","publishedAt":"2026-09-20T08:22:13.982904Z","updatedAt":"2026-09-20T08:22:13.982904Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.0.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.0.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-23T15:41:42.675163Z","publishedAt":"2026-09-23T15:41:42.675163Z","updatedAt":"2026-09-23T15:41:42.675163Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.0.2","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.0.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-23T21:37:54.713684Z","publishedAt":"2026-09-23T21:37:54.713684Z","updatedAt":"2026-09-23T21:37:54.713684Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.1.0","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.1.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-24T15:11:49.322341Z","publishedAt":"2026-09-24T15:11:49.322341Z","updatedAt":"2026-09-24T15:11:49.322341Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.1.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.1.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"OAuth refresh token from the one-time bootstrap (rotates on every use)","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-25T15:54:52.665235Z","publishedAt":"2026-09-25T15:54:52.665235Z","updatedAt":"2026-09-25T15:54:52.665235Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.1.2","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.1.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup.","format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-30T00:54:17.984917Z","publishedAt":"2026-09-30T00:54:17.984917Z","updatedAt":"2026-09-30T00:54:17.984917Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.1.3","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.1.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup.","format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-30T16:57:56.772383Z","publishedAt":"2026-09-30T16:57:56.772383Z","updatedAt":"2026-09-30T16:57:56.772383Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.1.4","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.1.4","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","isRequired":true,"format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","isRequired":true,"format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup.","format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost/callback)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-03T01:40:30.004076Z","publishedAt":"2026-10-03T01:40:30.004076Z","updatedAt":"2026-10-03T01:40:30.004076Z","isLatest":true}}}],"metadata":{"count":19}}
