# Use Opskeet from AI agents

Claude, ChatGPT, Cursor, Codex and other AI agents can work in Opskeet for you: answer chats, add notes, update contacts, write help articles, teach the AI agent, run outbound messages and read analytics and reports. They connect through MCP, our command line tool, or the REST API.

An agent acts as the person who connected it, with their role on each project. Owners and admins can do more than agents (teammates with the agent role), exactly as in the app.

## MCP server

```
https://opskeet.com/api/mcp
```

Streamable HTTP. Agents sign in with OAuth the first time (a browser page asks you to allow them), or send an API key as `Authorization: Bearer opk_…`.

### Claude (claude.ai, desktop, mobile)

Settings → Connectors → Add custom connector. Paste the address, then Connect.

### ChatGPT

Turn on Developer mode (Settings → Apps → Advanced), then create an app with the address and OAuth. Custom apps need a paid plan; on Business and Enterprise an admin may need to allow them.

### Claude Code

```sh
claude mcp add --transport http opskeet https://opskeet.com/api/mcp
```

Then run `/mcp` in Claude Code to sign in.

### Cursor

[Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=opskeet&config=eyJ1cmwiOiJodHRwczovL29wc2tlZXQuY29tL2FwaS9tY3AifQ==), or in `~/.cursor/mcp.json`:

```json
{ "mcpServers": { "opskeet": { "url": "https://opskeet.com/api/mcp" } } }
```

### VS Code

```sh
code --add-mcp '{"name":"opskeet","type":"http","url":"https://opskeet.com/api/mcp"}'
```

### Codex

```sh
codex mcp add opskeet --url https://opskeet.com/api/mcp
codex mcp login opskeet
```

### Anything else

Add a remote MCP server with the address. It supports OAuth 2.1 with PKCE, dynamic client registration and client ID metadata documents, discovered from `https://opskeet.com/.well-known/oauth-protected-resource/api/mcp`. Without OAuth, send an API key as a Bearer token.

## Command line

```sh
npx opskeet login          # signs in through your browser
npx opskeet tools          # what you can do
npx opskeet help send_reply
npx opskeet list_conversations --projectId PROJECT_ID --view mine
```

Output is JSON. On a server or over SSH, `npx opskeet login --no-browser` prints the link to open elsewhere. For scripts and CI, set `OPSKEET_API_KEY` instead of signing in. `--input '{"…": …}'` passes options as JSON.

## API keys

Settings → AI agents → New key. A key acts as you, on every project you're on; make it read-only when it only needs to look. It's shown once; delete it to stop it working.

## REST API

Everything the app does: `https://opskeet.com/api/v1/…` with `Authorization: Bearer <key or token>`.

- Reference: https://opskeet.com/docs/api
- OpenAPI 3.1: https://opskeet.com/api/openapi.json

Errors are `{ "error": { "code": "…", "message": "…" } }` with the HTTP status.

## Tools

Start with `list_projects`: every other tool takes a `projectId` from it.

- Projects: `list_projects`, `get_getting_started`, `get_install_snippet`, `check_install`, `get_checkup`, `get_settings`, `update_settings`
- Inbox: `get_inbox_counts`, `list_conversations`, `get_conversation`, `list_messages`, `send_reply`, `add_note`, `update_conversation`, `start_conversation`, `set_ai_answering`, `convert_to_ticket`, `draft_reply`, `summarize_conversation`, `list_tags`, `create_tag`, `list_quick_replies`, `create_quick_reply`, `update_quick_reply`, `delete_quick_reply`
- Contacts: `list_contacts`, `get_contact`, `get_contact_activity`, `update_contact`, `merge_contacts`, `list_online_visitors`, `list_companies`, `get_company`, `create_company`, `update_company`, `list_fields`
- AI and knowledge: `ask_ai`, `list_knowledge`, `search_knowledge`, `add_website_source`, `list_source_pages`, `choose_source_pages`, `add_written_answer`, `update_knowledge_source`, `list_knowledge_suggestions`, `approve_knowledge_suggestion`, `dismiss_knowledge_suggestion`
- Help center: `get_help_center`, `get_article`, `create_article`, `update_article`, `upload_help_image`, `publish_article`, `unpublish_article`, `create_collection`, `draft_article_with_ai`, `list_missing_articles`
- Outbound: `list_outbound`, `get_outbound`, `create_outbound`, `update_outbound`, `set_outbound_status`
- Analytics and reports: `get_analytics`, `get_analytics_breakdown`, `get_live_analytics`, `list_goals`, `list_funnels`, `get_team_report`, `get_ai_report`, `get_topics_report`
- Team: `list_team`, `invite_teammate`
- Import and export: `get_import_format`, `list_import_sources`, `check_import_keys`, `list_imports`, `start_import`, `add_import_records`, `add_import_file_link`, `finish_import`, `import_the_rest`, `stop_import`, `publish_imported_articles`, `undo_import`, `export_everything`

## Moving from another tool

Everything an agent needs to move a project in, sample first. The app's Move in dialog (Settings → Import & export) gives a ready prompt for each tool.

1. Connect to Opskeet: the MCP server above, or `npx opskeet login` in a terminal.
2. `list_import_sources` gives each tool's keys, their labels as the tool shows them, and the steps to find them. Ask the user for those, with the steps.
3. Check and start, in the background:
   - `check_import_keys` with `source` and `credentials`. Show the user the old tool's teammates and who they match here.
   - `start_import` with the same `source` and `credentials`, those matches as `teammates`, and `sample: true`. It brings in 20 conversations. `sync: true` keeps bringing in new activity every hour until the user switches, up to 30 days.
   - Once the user has looked, `import_the_rest`. Teammates who joined since the sample go in its `teammates`, and take over the sample's replies.
4. After: ask before `publish_imported_articles`. The user swaps the chat snippet, forwards their support email and saves the old tool's identity secret in Settings → Import & export.

Crisp, Chatwoot and any public help center work this way (`ready: true` in `list_import_sources`). The others are coming soon: read them with your own tools and send records (below).

The command line works for those the same way: `npx opskeet import <tool>` asks for the keys, or takes them as `<TOOL>_<KEY>` environment variables (keys as `list_import_sources` names them, in capitals) or `--<key>` options. It brings in everything at once, with no sample.

For any other tool, read it with its own MCP server or API, then `get_import_format`, `start_import`, and `add_import_records` in batches: teammates, companies and contacts, then conversations with every message, note and file, canned replies and help center articles. Add each attachment with `add_import_file_link` right after reading it, since download links expire. Finish with `finish_import`.

- Nothing imported reaches visitors: no emails, no AI replies, no rules.
- Running it again skips what's already here and adds what's new.
- `undo_import` removes what an import created. Ask the user first.
- Agents can't save the old tool's identity secret; the user does that in the app.
- Stuck: hello@opskeet.com. Guide: [Switch to Opskeet](https://opskeet.com/docs/switch.md).

## Safety

- Replies an agent sends show "Through Claude" (or the key's name) to your team.
- A project can keep agents to internal notes: Settings → AI agents → Agents can reply to visitors.
- Read-only access only sees tools that read.
- Agents can't change billing, AI provider keys, API keys or what agents may do, invite or remove teammates, or hand over or delete a project.
- Disconnect an app or delete a key in Settings → AI agents; access ends right away.
- Each person and agent has a rate limit of 300 requests a minute.
