From d6eaeb5b95c77b432418d1ad9dfc67843cac500b Mon Sep 17 00:00:00 2001 From: Brian Scanlan Date: Fri, 23 Oct 2026 16:21:09 +0100 Subject: [PATCH 1/2] Add Google Antigravity plugin manifest and credit Fin as publisher Antigravity reads a manifest from .antigravity-plugin/plugin.json alongside .claude-plugin/, an MCP config from mcp_config.json, and a square logo from assets/. It reuses the existing skills/ directory and the mcp.intercom.com endpoint, so both platforms ship the same plugin. Fin is the company and Intercom is its helpdesk product, so the publisher (author) becomes Fin while product naming stays Intercom. The LICENSE keeps Intercom, Inc. because the legal entity is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01RnZ7H96XWDMNMP3tEU2UBH --- .antigravity-plugin/plugin.json | 21 +++++++++++++++++++++ .claude-plugin/plugin.json | 6 +++--- CLAUDE.md | 5 ++++- README.md | 15 ++++++++++++--- assets/logo.svg | 1 + mcp_config.json | 7 +++++++ 6 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 .antigravity-plugin/plugin.json create mode 100644 assets/logo.svg create mode 100644 mcp_config.json diff --git a/.antigravity-plugin/plugin.json b/.antigravity-plugin/plugin.json new file mode 100644 index 0000000..5f5aeee --- /dev/null +++ b/.antigravity-plugin/plugin.json @@ -0,0 +1,21 @@ +{ + "name": "intercom", + "displayName": "Intercom", + "version": "0.2.0", + "description": "Search Intercom conversations, contacts, and companies, spot support trends, and install the Intercom Messenger with secure identity verification.", + "logo": "assets/logo.svg", + "suggestedPrompts": [ + "Show me the most common topics in open Intercom conversations this week", + "Summarize every Intercom conversation from jane@example.com", + "Install the Intercom Messenger in this app with identity verification" + ], + "category": ["Productivity", "Developer Tools"], + "keywords": ["intercom", "fin", "customer-support", "helpdesk", "conversations", "contacts", "messenger", "crm"], + "author": { + "name": "Fin", + "url": "https://fin.ai" + }, + "homepage": "https://developers.intercom.com", + "repository": "https://github.com/intercom/claude-plugin-external", + "license": "MIT" +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 6adfbe5..8e05b83 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,10 +1,10 @@ { "name": "intercom", "description": "Intercom integration for Claude Code. Search conversations, analyze customer support patterns, look up contacts and companies, and install the Intercom Messenger. Connect your Intercom workspace to get real-time insights from customer data.", - "version": "0.1.0", + "version": "0.2.0", "author": { - "name": "Intercom", - "url": "https://intercom.com" + "name": "Fin", + "url": "https://fin.ai" }, "homepage": "https://developers.intercom.com", "repository": "https://github.com/intercom/claude-plugin-external", diff --git a/CLAUDE.md b/CLAUDE.md index 89f3b2c..123e737 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## What This Is -Intercom plugin for Claude Code — a skill-based integration (not compiled code). Skills are pure Markdown files that Claude reads at runtime to interact with Intercom workspaces via a remote MCP server. +Intercom plugin for Claude Code and Google Antigravity — a skill-based integration (not compiled code). Skills are pure Markdown files the agent reads at runtime to interact with Intercom workspaces via a remote MCP server. Both platforms load the same `skills/` directory. ## Architecture @@ -15,6 +15,9 @@ User → Claude Code CLI → Skill (SKILL.md) → MCP Server (https://mcp.interc - **No build step, no dependencies, no tests.** The plugin is entirely declarative. - `.mcp.json` routes the `intercom` namespace to the remote HTTP-based MCP server. - `.claude-plugin/plugin.json` is the plugin manifest for Claude Code's plugin registry. +- `.antigravity-plugin/plugin.json` is the Antigravity Plugin Marketplace manifest. Antigravity reads MCP servers from `mcp_config.json` and the card logo from `assets/logo.svg`, both at the repo root. +- Keep `version` in both manifests in step, and bump it on every published change so installed clients pick up the update. +- The company is Fin and Intercom is its helpdesk product: use Fin for the publisher (`author`) and Intercom for the product and its features. - `.claude/settings.local.json` manages local permissions (currently allows WebFetch from raw.githubusercontent.com). ## Skills diff --git a/README.md b/README.md index 2d2192b..fdfd8b1 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,27 @@ -# Intercom Plugin for Claude Code +# Intercom Plugin for Claude Code and Google Antigravity -Connect your Intercom workspace to Claude Code. Search conversations, analyze customer support patterns, look up contacts and companies, and install the Intercom Messenger — all from your terminal. +Connect your Intercom workspace to Claude Code or Google Antigravity. Search conversations, analyze customer support patterns, look up contacts and companies, and install the Intercom Messenger. ## Prerequisites - An [Intercom](https://www.intercom.com) workspace -- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI installed +- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or [Google Antigravity](https://antigravity.google) installed - Your Intercom workspace must be US-hosted (EU and AU support coming soon) ## Installation +### Claude Code + ``` /plugin install intercom ``` +### Google Antigravity + +Open **Customizations → Plugins** and install Intercom from **Discover**, or choose **+ Install from URL** and enter `https://github.com/intercom/claude-plugin-external`. + +Connecting to the Intercom MCP server requires signing in to your Intercom workspace through OAuth. In Antigravity, explicit skills are invoked without the `intercom:` prefix, for example `/customer-360 jane@example.com`. + ## Available Skills | Skill | Invocation | Description | @@ -67,6 +75,7 @@ Pull up conversation #12345 and show me the full thread - [Intercom API Reference](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/conversations/conversation/) - [Intercom Messenger Setup Guide](https://www.intercom.com/help/en/articles/170-install-intercom-on-your-website-or-web-app) - [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code) +- [Google Antigravity](https://antigravity.google) ## License diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..134bc79 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/mcp_config.json b/mcp_config.json new file mode 100644 index 0000000..f5d33c5 --- /dev/null +++ b/mcp_config.json @@ -0,0 +1,7 @@ +{ + "mcpServers": { + "intercom": { + "serverUrl": "https://mcp.intercom.com/mcp" + } + } +} From c35e0434cb5fcecead15e9dce16836264d711cfc Mon Sep 17 00:00:00 2001 From: Brian Scanlan Date: Fri, 23 Oct 2026 16:45:23 +0100 Subject: [PATCH 2/2] Pass Antigravity's strict plugin validation agy plugin validate --strict flagged two warnings: it ignores the category field, and it never loads a .mcp.json. Drop category and declare the Claude Code MCP server inline in .claude-plugin/plugin.json instead, which Claude Code still loads as plugin:intercom:intercom. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01RnZ7H96XWDMNMP3tEU2UBH --- .antigravity-plugin/plugin.json | 1 - .claude-plugin/plugin.json | 6 ++++++ .mcp.json | 6 ------ CLAUDE.md | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 .mcp.json diff --git a/.antigravity-plugin/plugin.json b/.antigravity-plugin/plugin.json index 5f5aeee..a71bef8 100644 --- a/.antigravity-plugin/plugin.json +++ b/.antigravity-plugin/plugin.json @@ -9,7 +9,6 @@ "Summarize every Intercom conversation from jane@example.com", "Install the Intercom Messenger in this app with identity verification" ], - "category": ["Productivity", "Developer Tools"], "keywords": ["intercom", "fin", "customer-support", "helpdesk", "conversations", "contacts", "messenger", "crm"], "author": { "name": "Fin", diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 8e05b83..a738d7f 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -9,5 +9,11 @@ "homepage": "https://developers.intercom.com", "repository": "https://github.com/intercom/claude-plugin-external", "license": "MIT", + "mcpServers": { + "intercom": { + "type": "http", + "url": "https://mcp.intercom.com/mcp" + } + }, "keywords": ["intercom", "customer-support", "conversations", "contacts", "messenger", "crm", "api"] } diff --git a/.mcp.json b/.mcp.json deleted file mode 100644 index 5b8b376..0000000 --- a/.mcp.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "intercom": { - "type": "http", - "url": "https://mcp.intercom.com/mcp" - } -} diff --git a/CLAUDE.md b/CLAUDE.md index 123e737..fd5f0f6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,7 +13,7 @@ User → Claude Code CLI → Skill (SKILL.md) → MCP Server (https://mcp.interc ``` - **No build step, no dependencies, no tests.** The plugin is entirely declarative. -- `.mcp.json` routes the `intercom` namespace to the remote HTTP-based MCP server. +- `.claude-plugin/plugin.json` declares the `intercom` MCP server inline. Don't add a `.mcp.json`: Antigravity never loads it, and `agy plugin validate --strict` fails on it. - `.claude-plugin/plugin.json` is the plugin manifest for Claude Code's plugin registry. - `.antigravity-plugin/plugin.json` is the Antigravity Plugin Marketplace manifest. Antigravity reads MCP servers from `mcp_config.json` and the card logo from `assets/logo.svg`, both at the repo root. - Keep `version` in both manifests in step, and bump it on every published change so installed clients pick up the update.