| name | test-mcp-connector |
| description | Register a temporary MCP connector in claude.ai and/or chatgpt.com, verify it works, then offer cleanup. Trigger when the user wants to test an MCP server URL through a real AI frontend — phrases like "test mcp", "add test connector", "smoke-test mcp server", "register connector for testing", "check mcp in claude", "check mcp in chatgpt".
|
Skill: test-mcp-connector
Automates end-to-end smoke-testing of an MCP server through the claude.ai and/or
chatgpt.com web frontends using the chrome-devtools MCP tools. Registers a
short-lived connector with a random suffix, verifies tool invocation succeeds, and
offers a cleanup flow.
Phase 0 — Gather inputs
If URL, base name, and target are already provided in the invocation prompt, skip
directly to Phase 1.
Otherwise use AskUserQuestion to collect (in a single prompt):
- MCP server URL — the remote MCP endpoint to register (required)
- Base name — short identifier, e.g.
myserver (required); the actual connector
name will be {basename}-{suffix}
- Target — where to register:
claude.ai only / chatgpt.com only / both
(default: both)
Phase 1 — Generate connector name
openssl rand -hex 3
Connector name → {basename}-{suffix} (e.g. myserver-a3f9c1)
Announce the full connector name to the user before touching any browser tab.
Phase 2 — Register on claude.ai
(Skip if target is chatgpt.com only)
list_pages — find a claude.ai tab; if none, new_page → https://claude.ai/new
navigate_page → https://claude.ai/customize/connectors
take_snapshot — verify page loaded
- Click Add connector (expandable menu) → Add custom connector
- If disabled (Free plan, slot taken): inform the user they must first remove
the existing custom connector, wait for confirmation, then retry from step 4.
- In the dialog, fill:
- Name field → connector name
- Remote MCP server URL field → URL
- Click Add
- If redirected to an Auth0/Google login page:
- Click Continue with Google
- On the Google account-chooser, select the personal account already signed in
- Wait for redirect back to claude.ai
take_snapshot — confirm the connector appears in the sidebar and its tools are
listed under Tool permissions
Phase 3 — Register on chatgpt.com
(Skip if target is claude.ai only)
list_pages — find a chatgpt.com tab; if none, new_page → https://chatgpt.com/
navigate_page → https://chatgpt.com/#settings/Connectors (opens the Apps panel)
take_snapshot
- Click Advanced settings
take_snapshot — check if Developer mode switch is checked
- If not checked: click the switch to enable it; a Create app button will appear
- Click Create app
- In the "New App" dialog fill:
- Name → connector name
- MCP Server URL → URL
- Leave Authentication as
OAuth (default)
- Check the I understand and want to continue checkbox
- Click Create (becomes active once checkbox is checked)
- If redirected to Auth0/Google:
- Click Continue with Google
- Select the personal Google account on the account-chooser page
- Wait for OAuth callback; chatgpt.com will redirect back and show a
"… is now connected" toast
take_snapshot — confirm connector appears under Enabled apps or Drafts with
DEV badge
Phase 4 — Verify
For each registered frontend:
navigate_page → new chat
- claude.ai:
https://claude.ai/new
- chatgpt.com:
https://chatgpt.com/
- Click the chat input and type:
check {connector-name} mcp → press Enter
- Wait for the response to finish (poll with
take_screenshot until the stop button
disappears)
take_screenshot — capture the final response
- Pass criteria: the response mentions the connector is connected and shows at
least one successful tool call (whoami, execute_query, or any listed tool)
Report pass / fail per frontend with the screenshot evidence.
Phase 5 — Cleanup
If invoked autonomously (inputs were pre-provided in the prompt), skip the offer
and run Phase 6 immediately, then return the structured result from Phase 7.
Otherwise present the user with:
-
Clean up now → run Phase 6 immediately
-
Keep for now → print a reminder block:
Connector name : {connector-name}
URL : {url}
Registered on : {list of frontends}
To remove later, run /test-mcp-connector cleanup
or follow the manual steps in the skill's Phase 6.
If the user invokes the skill again with the word cleanup (e.g.
/test-mcp-connector cleanup), skip Phases 0-5 and go straight to Phase 6, asking
which connector name to remove.
Phase 6 — Cleanup
claude.ai
navigate_page → https://claude.ai/customize/connectors
take_snapshot — find the connector button by name
- Click it → click More options for {name} (⋯ button) → Remove
- Confirm in the dialog → Remove
take_snapshot — verify the connector is no longer listed
chatgpt.com
navigate_page → https://chatgpt.com/#settings/Connectors
take_snapshot — find the connector in Enabled apps or Drafts
- Click it → click the ⋯ menu → Delete
take_snapshot — verify neither Enabled apps nor Drafts list the connector
Report: "Cleanup complete — {name} removed from {frontends}."
Phase 7 — Return result (autonomous mode only)
After cleanup, return a single structured paragraph:
PASS {connector-name} — auth: <user-email> — tools invoked: whoami, execute_query — DB accessible. Connector removed.
FAIL {connector-name} — {phase} failed: {reason}. Connector {removed|left in place}.
Edge cases
| Situation | Handling |
|---|
| claude.ai Free plan slot taken (interactive) | Prompt user to remove existing connector first |
| claude.ai Free plan slot taken (autonomous) | If existing connector matches {basename}-*, auto-remove it and continue; otherwise return FAIL immediately |
| chatgpt.com Developer mode off | Enable it before clicking Create app |
| Auth0 / Google OAuth during creation | Auto-click Continue with Google; pick personal account |
| Connector name already exists | Regenerate suffix and retry (rare with 6-char hex) |
| Chrome not running | Instruct user to run iso chrome; do not try to launch it |
take_snapshot shows busy/loading | Poll with additional take_snapshot calls before acting |