@orbitlogistics/mcp-plain 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2096 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# @orbitlogistics/mcp-plain
|
|
2
|
+
|
|
3
|
+
MCP server for the [Plain](https://plain.com) customer support platform. Provides tools for managing threads, help center articles, and more via the [Model Context Protocol](https://modelcontextprotocol.io).
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
### With Claude Code
|
|
8
|
+
|
|
9
|
+
Add to your project's `.claude/settings.json`:
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"mcpServers": {
|
|
14
|
+
"plain": {
|
|
15
|
+
"command": "npx",
|
|
16
|
+
"args": ["-y", "@orbitlogistics/mcp-plain@latest"],
|
|
17
|
+
"env": {
|
|
18
|
+
"PLAIN_API_KEY": "${PLAIN_API_KEY}"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Then set `PLAIN_API_KEY` in your shell environment (e.g. `.zshrc`, `.envrc`, or a secrets manager).
|
|
26
|
+
|
|
27
|
+
### With other MCP clients
|
|
28
|
+
|
|
29
|
+
Run the server directly:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
PLAIN_API_KEY=plainApiKey_xxx npx @orbitlogistics/mcp-plain@latest
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Tools
|
|
36
|
+
|
|
37
|
+
> **Note:** This server does not cover the full Plain API — only the endpoints we actively use. If you need additional methods, PRs are welcome!
|
|
38
|
+
|
|
39
|
+
### Threads
|
|
40
|
+
- `list_threads` - List threads with filters (status, priority, labels, customer, tenant)
|
|
41
|
+
- `get_thread` - Get full thread details by ID (includes timeline)
|
|
42
|
+
- `get_thread_by_ref` - Get thread by reference number (e.g. T-510)
|
|
43
|
+
- `get_thread_fields` - Get custom field values for a thread
|
|
44
|
+
- `create_thread` - Create a new thread (auto-creates customer by email if needed)
|
|
45
|
+
- `reply_to_thread` - Send a reply through the original channel
|
|
46
|
+
- `mark_thread_as_done` - Mark a thread as resolved
|
|
47
|
+
- `upsert_thread_field` - Set/update custom field values
|
|
48
|
+
- `add_internal_note` - Post an internal note (not visible to customer)
|
|
49
|
+
- `add_labels` - Add category labels to a thread
|
|
50
|
+
- `get_label_types` - List available label types
|
|
51
|
+
|
|
52
|
+
### Attachments
|
|
53
|
+
- `get_attachment_download_url` - Get a temporary download URL
|
|
54
|
+
- `get_attachment_content` - Fetch attachment content (text or base64)
|
|
55
|
+
|
|
56
|
+
### Help Center
|
|
57
|
+
- `list_help_centers` - List all help centers
|
|
58
|
+
- `get_help_center` - Get help center structure (groups and articles)
|
|
59
|
+
- `list_help_center_articles` - List articles with full content
|
|
60
|
+
- `get_help_center_article` - Get article by ID
|
|
61
|
+
- `get_help_center_article_by_slug` - Get article by URL slug
|
|
62
|
+
- `upsert_help_center_article` - Create or update an article (always saves as DRAFT)
|
|
63
|
+
- `create_help_center_article_group` - Create an article group
|
|
64
|
+
- `delete_help_center_article_group` - Delete an empty article group
|
|
65
|
+
|
|
66
|
+
## Development
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pnpm install
|
|
70
|
+
pnpm test
|
|
71
|
+
pnpm build
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## License
|
|
75
|
+
|
|
76
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|