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 # produces 6 hex chars, e.g. a3f9c1
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/newnavigate_page→https://claude.ai/customize/connectorstake_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 ischecked- 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/
- claude.ai:
- Click the chat input and type:
check {connector-name} mcp→ press Enter - Wait for the response to finish (poll with
take_screenshotuntil 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/connectorstake_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/Connectorstake_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 |