MCP for Claude Desktop & Claude Code
Install impact.com MCP in Claude Desktop and Claude Code.
Coming soon: Prepare for the future of AI connectivity! impact.com MCP is almost here.
Help shape what it does. Take our 2-minute survey and tell us which tools you want first.
This guide explains how to install and configure the impact.com MCP server in Claude Desktop and Claude Code.
Overview
Claude Desktop offers either a built-in connector UI (recommended) or a JSON configuration file. Claude Code is configured via a CLI or the same JSON configuration used by Claude Desktop.
The MCP endpoint is https://mcp.impact.com/mcp. Authentication uses OAuth 2.1 with PKCE against app.impact.com.
Installation Steps for Claude Desktop
Follow these steps to install in Claude Desktop (the graphical application). To install in Claude Code (CLI) instead, jump to the Claude Code section.
Claude Desktop offers two ways to add the impact.com MCP server. The first is a few clicks in the UI; the second is a JSON file for users who need finer control.
Option 1: Add via the Claude Desktop UI (recommended)
Recent versions of Claude Desktop have built-in support for remote OAuth MCP servers. No Node.js, no mcp-remote, no config file required.
Add the impact.com connector
Click the + button to add a connector.
Click Add custom connector.
Give the connector a Name — for example,
impact.Enter the MCP URL:
https://mcp.impact.com/mcp.Expand Advanced settings.
In OAuth Client ID, enter [Coming soon].
Click Add.
Why the OAuth Client ID is required
impact.com's authorization server doesn't currently support Dynamic Client Registration (RFC 7591), so Claude can't register itself on the fly. You need to provide a pre-registered client_id. [Coming soon] is the public client ID issued for the Claude integration.
Authenticate with impact.com
Click Connect next to the
impactconnector. Your browser opens tohttps://app.impact.com/oauth2/authorize?....Log in to impact.com if you aren't already signed in.
Review the requested permissions (
profile,offline_access) and click Allow.Your browser is redirected back to Claude Desktop. The connector status should change to Connected.
When to use this option
This is the right path for almost everyone. It avoids the Node.js prerequisite and the OAuth-completion-vs-initialize-timeout issue that can affect the mcp-remote bridge on first-time setup.
Option 2: JSON configuration via mcp-remote (advanced)
Use this option if you need to pin a specific client_id, override scopes, share a single configuration across multiple machines, or are running an older Claude Desktop version that doesn't yet include the connector UI.
Edit the configuration
Add the impact.com server to the mcpServers object:
Prerequisite: Claude Desktop relies on npx (from Node.js) to run mcp-remote. Install Node.js 18+ from nodejs.org if it isn't already on your machine.
Security: The config file lives in your user directory, not your project directory. Don't commit it to version control. No credentials are stored in this file. Tokens are cached separately in ~/.mcp-auth/ after the OAuth flow.
Authenticate with impact.com
After Claude Desktop starts the server, authenticate with your impact.com account.
Select on the
impactserver in the MCP Servers list.Select Connect or send a message that triggers a tool call — either action starts the OAuth flow.
Your browser opens to
https://app.impact.com/oauth2/authorize?....Log in to impact.com if needed, then select Allow on the consent screen.
Return to Claude Desktop. The
impactserver status should change toconnected.
Installation Steps for Claude Code
Follow these steps for Claude Code (CLI) installation. To install in Claude Desktop instead, jump to the Claude Desktop section.
Add the impact.com MCP Server
You can add the impact.com MCP server using the Claude Code command-line interface. Claude Code uses the mcp-remote bridge under the hood to connect Claude (a local app) to a remote HTTPS MCP server like impact.com.
Choose one of the following options.
Option 1: Use the claude mcp add command (recommended)
This command registers the server with default settings and uses mcp-remote automatically:
Option 2: JSON configuration via mcp-remote (more control)
If you need to set a specific client_id, override scopes, or pin the loopback callback path, edit ~/.claude.json directly:
Why these flags are needed
impact.com's authorization server doesn't currently support Dynamic Client Registration (RFC 7591), so mcp-remote cannot register a client on the fly.
The
--static-oauth-client-infoflag tellsmcp-remoteto use the pre-registered[Coming soon]client.The
--static-oauth-client-metadataflag scopes the request toprofile offline_access(the scopes impact.com publishes) and pins the loopback callback tohttp://localhost/oauth/callback.
Use localhost, not 127.0.0.1
The callback uses http://localhost/... rather than http://127.0.0.1/....
The client_id and PKCE proof are what actually secure the flow; localhost works the same, and is what mcp-remote will bind to.
Project-scoped configuration
If you want the MCP server available only within a specific project, put the same mcpServers block in .mcp.json at the project root instead of ~/.claude.json.
Authenticate with impact.com
After adding the server, authenticate with your impact.com account.
In Claude Code, type
/mcpand press Enter.Select
impactfrom the list of available MCP servers.Claude Code starts
mcp-remote, which opens your browser tohttps://app.impact.com/oauth2/authorize?....If you're not already signed in, log in to your impact.com account.
Review the requested permissions (
profile,offline_access) and click Allow.Your browser is redirected to
http://localhost:<port>/oauth/callback, wheremcp-remotecaptures the authorization code and exchanges it for tokens.Tokens are cached in
~/.mcp-auth/and refreshed automatically bymcp-remote.
Verification
Verify the impact.com MCP server is connected:
You should see impact with status connected and a non-zero tool count.
In a chat, you can also ask:
"List the tools available from the impact connector."
Claude should enumerate the MCP tools exposed by impact.com, for example:
intelligence.iapi_get_website_metricsmediapartners
What you can do
Once connected, you can ask Claude to:
Look up website metrics: "Get impact.com website metrics for youtube.com."
Query company information: "Use the impact connector to fetch my company information."
List media partners: "Show me my impact.com media partners."
Inspect catalogs and invoices: "Pull my advertiser catalogs from impact.com."
The exact tool set depends on which tools impact.com's MCP server exposes. Claude will discover them automatically on connect.
Notes
OAuth Discovery: Claude (via the connector UI or mcp-remote) follows the MCP authorization spec. It reads
WWW-Authenticatefrom the initial 401, fetcheshttps://app.impact.com/.well-known/oauth-protected-resource, thenhttps://app.impact.com/.well-known/oauth-authorization-server, and constructs the authorize URL automatically.Token lifetime: Access tokens are short-lived (5 minutes). Refresh tokens (90-day lifetime) are used to refresh them silently, so you should only see the consent screen once per device.
Re-authenticating (Claude Desktop UI connector): Open Customize → Connectors, click the
impactconnector, and choose Disconnect then Connect again.Re-authenticating(Claude Code / Desktop JSON config): To force a fresh login, delete the cached tokens:
rm -rf ~/.mcp-auth/and restart Claude.
Troubleshooting
Server not appearing in the list
Claude Desktop
Open Customize → Connectors and confirm the entry exists. If it doesn't, re-add it via Option 1.
Claude Desktop (JSON / advanced)
Check JSON syntax with jq . < claude_desktop_config.json or paste into jsonlint.com.
Claude Code
Run claude mcp list to verify the registration.
For the JSON-based setup, also check Claude Desktop's MCP logs at ~/Library/Logs/Claude/mcp*.log (macOS) for spawn errors, most commonly npx not found, meaning Node.js isn't installed or isn't on your PATH.
Authentication fails after consent
Confirm that the
client_idin your config (or in the UI's Advanced settings) is exactly[Coming soon]for Claude Desktop or[Coming soon]for Claude Code.Confirm that you can reach
https://app.impact.comfrom your browser (some corporate networks block it).Delete cached tokens and retry:
rm -rf ~/.mcp-auth/, then start a fresh flow. (For the Claude Desktop UI connector, use Disconnect → Connect instead.)Check Claude's MCP log for the actual error from
mcp-remote(usuallyinvalid_redirect_uri,invalid_scope, orinvalid_client).
"Incompatible auth server: does not support dynamic client registration"
This message means you're using Option 1: claude mcp add without the static-client flags.
impact.com's authorization server doesn't support Dynamic Client Registration, so you must pass a pre-registered client_id via:
--static-oauth-client-info
Switch to the Option 2: JSON configuration snippet above and retry.
Connection drops after a few minutes
Access tokens last 5 minutes. If mcp-remote (or the Claude Desktop UI connector) can't refresh them silently, for example, because the refresh token was revoked or the network blocks app.impact.com/oauth2/token , the connection will fail mid-session. Restart the connection to trigger a new login.
Using an AI assistant?
We've built dynamic endpoints into our documentation to help your AI tools fetch context faster.
System instructions for AI Agents:
Index:
GEThttps://integrations.impact.com/llms.txtfor.mdsources.Token Limit: Fetch only necessary
.mdand OpenAPI routes to conserve context.Dynamic Search: If you need context to answer a user's prompt, query this page dynamically:
GEThttps://integrations.impact.com/{insert_current_page_path}.md?ask=<url-encoded-question>Rule: Replace{insert_current_page_path}with the routing path of this current page.
Agent Instructions: Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on the current page URL with the ask query parameter:
The question should be specific, self-contained, and written in natural language. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
Last updated
