outline-mcp-server 5.1.0 → 5.2.1
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 +29 -25
- package/build/index.js +4 -2
- package/build/outline/outlineClient.js +0 -1
- package/build/stdio.js +9 -0
- package/package.json +14 -13
package/README.md
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
# Outline MCP Server
|
2
2
|
|
3
|
+
[](https://cursor.com/install-mcp?name=outline&config=eyJjb21tYW5kIjoibnB4IC15IC0tcGFja2FnZT1vdXRsaW5lLW1jcC1zZXJ2ZXJAbGF0ZXN0IC1jIG91dGxpbmUtbWNwLXNlcnZlci1zdGRpbyIsImVudiI6eyJPVVRMSU5FX0FQSV9LRVkiOiI8UkVQTEFDRV9NRT4iLCJPVVRMSU5FX0FQSV9VUkwiOiJodHRwczovL2FwcC5nZXRvdXRsaW5lLmNvbS9hcGkiLCJPVVRMSU5FX01DUF9QT1JUIjoiNjA2MCJ9fQ%3D%3D)
|
4
|
+
|
5
|
+
 • 
|
6
|
+
|
3
7
|
A Model Context Protocol (MCP) server that provides tools for interacting with [Outline](https://www.getoutline.com/)'s API, enabling AI agents to manage documents, collections, and other entities programmatically through the Outline knowledge base platform.
|
4
8
|
|
5
9
|
## 🚨 \***\*Upgrade Notice:\*\*** v5 has introduced several breaking changes: 🚨
|
6
10
|
|
7
|
-
- support has been dropped for the `stdio` transport interfaces.
|
8
|
-
- This server now exposes:
|
9
|
-
- a [Streamable-HTTP endpoint](https://modelcontextprotocol.io/specification/draft/basic/transports#streamable-http) at the `/mcp` route.
|
10
|
-
- an SSE endpoint at `/sse`
|
11
|
-
- If you require stdio, downgrade to v4
|
12
11
|
- the `--port` CLI flag has been migrated to an environment variable, `OUTLINE_MCP_PORT`
|
13
12
|
- Minimum node version has been bumped to 20
|
13
|
+
- sse & stdio were removed in 5.0.0 but later re-introduced in 5.1.0 and 5.2.0 respectively
|
14
14
|
|
15
15
|
## Features
|
16
16
|
|
17
17
|
- **Document Management**
|
18
|
-
|
19
18
|
- ✅ Create new documents with customizable properties
|
20
19
|
- ✅ Get document details
|
21
20
|
- ✅ Update existing documents
|
@@ -28,13 +27,11 @@ A Model Context Protocol (MCP) server that provides tools for interacting with [
|
|
28
27
|
- ✅ Archive documents
|
29
28
|
|
30
29
|
- **Collection Management**
|
31
|
-
|
32
30
|
- ✅ Get collection details
|
33
31
|
- ✅ List collections
|
34
32
|
- ✅ Create and update collections
|
35
33
|
|
36
34
|
- **Comment Management**
|
37
|
-
|
38
35
|
- ✅ Create comments on documents
|
39
36
|
- ✅ Update existing comments
|
40
37
|
- ✅ Delete comments
|
@@ -51,18 +48,35 @@ A Model Context Protocol (MCP) server that provides tools for interacting with [
|
|
51
48
|
- Outline API key with appropriate permissions
|
52
49
|
- Note: if you need to use the AI-powered ask feature, you must enable the "AI Answers" feature in your Outline Workspace settings
|
53
50
|
|
54
|
-
###
|
51
|
+
### Running directly
|
55
52
|
|
56
53
|
```bash
|
57
|
-
#
|
58
|
-
OUTLINE_API_KEY=... npx outline-mcp-server
|
54
|
+
# S-HTTP/SSE servers
|
55
|
+
OUTLINE_API_KEY=... npx outline-mcp-server@latest -y
|
56
|
+
|
57
|
+
# STDIO
|
58
|
+
OUTLINE_API_KEY=... npx outline-mcp-server-stdio@latest -y
|
59
|
+
```
|
59
60
|
|
60
|
-
|
61
|
-
|
62
|
-
|
61
|
+
### Cursor (mcp.json)
|
62
|
+
|
63
|
+
Add the following MCP definition to your configuration:
|
64
|
+
|
65
|
+
```json
|
66
|
+
{
|
67
|
+
"outline": {
|
68
|
+
"command": "npx",
|
69
|
+
"args": ["-y", "outline-mcp-server-stdio@latest"],
|
70
|
+
"env": {
|
71
|
+
"OUTLINE_API_KEY": "<REPLACE_ME>",
|
72
|
+
"OUTLINE_API_URL": "https://app.getoutline.com/api",
|
73
|
+
"OUTLINE_MCP_PORT": "6060"
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
63
77
|
```
|
64
78
|
|
65
|
-
### Env
|
79
|
+
### Env vars
|
66
80
|
|
67
81
|
- `OUTLINE_API_KEY` (_required_): your API key for outline, duh
|
68
82
|
- `OUTLINE_API_URL` (_optional_): Alternative URL for your outline API (if using an alt domain/self-hosting)
|
@@ -82,16 +96,6 @@ Example queries your AI assistant can now handle:
|
|
82
96
|
- "Update the content of a document"
|
83
97
|
- "Add a comment to a document"
|
84
98
|
|
85
|
-
### Run the MCP server
|
86
|
-
|
87
|
-
```bash
|
88
|
-
# Default port 6060
|
89
|
-
OUTLINE_API_KEY=... npm run start:http
|
90
|
-
|
91
|
-
# Or specify a custom port
|
92
|
-
OUTLINE_API_KEY=... OUTLINE_MCP_PORT=9001 npm run start:http
|
93
|
-
```
|
94
|
-
|
95
99
|
## Development
|
96
100
|
|
97
101
|
```bash
|
package/build/index.js
CHANGED
@@ -3,8 +3,9 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
3
3
|
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
4
4
|
import fastify from 'fastify';
|
5
5
|
import { getMcpServer } from './utils/getMcpServer.js';
|
6
|
-
const app = fastify();
|
7
6
|
const mcpServer = await getMcpServer();
|
7
|
+
// HTTP mode - default behavior
|
8
|
+
const app = fastify();
|
8
9
|
// Stateless mode (default, recommended for most deployments)
|
9
10
|
app.post('/mcp', async (request, reply) => {
|
10
11
|
try {
|
@@ -89,5 +90,6 @@ app.listen({ port: PORT }, (err, address) => {
|
|
89
90
|
console.error(err);
|
90
91
|
process.exit(1);
|
91
92
|
}
|
92
|
-
console.log(
|
93
|
+
console.log(`\n\nOutline MCP Server running:\n\tstreamable-http: ${address}/mcp\n\tsse (deprecated): ${address}/sse\n\n`);
|
94
|
+
console.log('To use this MCP server in stdio mode, run it via `outline-mcp-server-stdio`.');
|
93
95
|
});
|
@@ -9,7 +9,6 @@ const API_URL = process.env.OUTLINE_API_URL || 'https://app.getoutline.com/api';
|
|
9
9
|
if (!API_KEY) {
|
10
10
|
throw new Error('OUTLINE_API_KEY environment variable is required');
|
11
11
|
}
|
12
|
-
console.log('Connecting to API URL:', API_URL);
|
13
12
|
// Create axios client with authentication
|
14
13
|
export const outlineClient = axios.create({
|
15
14
|
baseURL: API_URL,
|
package/build/stdio.js
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/usr/bin/env bun
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
3
|
+
import { getMcpServer } from './utils/getMcpServer.js';
|
4
|
+
const mcpServer = await getMcpServer();
|
5
|
+
// STDIO mode - for direct client connections
|
6
|
+
const transport = new StdioServerTransport();
|
7
|
+
await mcpServer.connect(transport);
|
8
|
+
// must not write to stdout according to mcp spec
|
9
|
+
console.error('Outline MCP Server running in STDIO mode');
|
package/package.json
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"name": "outline-mcp-server",
|
3
|
-
"version": "5.1
|
3
|
+
"version": "5.2.1",
|
4
4
|
"description": "An MCP server for interacting with Outline's API",
|
5
5
|
"type": "module",
|
6
6
|
"bin": {
|
7
|
-
"outline-mcp-server": "./build/index.js"
|
7
|
+
"outline-mcp-server": "./build/index.js",
|
8
|
+
"outline-mcp-server-stdio": "./build/stdio.js"
|
8
9
|
},
|
9
10
|
"files": [
|
10
|
-
"build"
|
11
|
-
"bin"
|
11
|
+
"build"
|
12
12
|
],
|
13
13
|
"author": {
|
14
14
|
"name": "Matt Frey",
|
@@ -19,9 +19,10 @@
|
|
19
19
|
"url": "https://github.com/mmmeff/outline-mcp-server"
|
20
20
|
},
|
21
21
|
"scripts": {
|
22
|
-
"build": "tsc && chmod +x build/index.js",
|
22
|
+
"build": "tsc && chmod +x build/index.js && chmod +x build/stdio.js",
|
23
23
|
"prepare": "npm run build",
|
24
24
|
"watch": "bun --watch src/index.ts",
|
25
|
+
"watch:stdio": "bun --watch src/stdio.ts",
|
25
26
|
"dev": "concurrently -n 'build,inspector' -c 'blue.bold,green.bold' 'npm run watch' 'npm run inspector'",
|
26
27
|
"inspector": "npx @modelcontextprotocol/inspector@latest",
|
27
28
|
"start": "bun build/index.js",
|
@@ -29,20 +30,20 @@
|
|
29
30
|
"semantic-release": "semantic-release"
|
30
31
|
},
|
31
32
|
"dependencies": {
|
32
|
-
"@modelcontextprotocol/sdk": "1.
|
33
|
-
"axios": "1.
|
34
|
-
"bun": "^1.2.15",
|
33
|
+
"@modelcontextprotocol/sdk": "1.13.1",
|
34
|
+
"axios": "1.10.0",
|
35
35
|
"dotenv": "16.5.0",
|
36
|
-
"fastify": "
|
36
|
+
"fastify": "5.4.0",
|
37
37
|
"omit-ts": "^2.0.1",
|
38
|
-
"zod": "3.25.
|
38
|
+
"zod": "3.25.67"
|
39
39
|
},
|
40
40
|
"devDependencies": {
|
41
41
|
"@semantic-release/changelog": "^6.0.3",
|
42
42
|
"@semantic-release/git": "^10.0.1",
|
43
|
-
"@types/node": "20.
|
44
|
-
"
|
45
|
-
"
|
43
|
+
"@types/node": "20.19.1",
|
44
|
+
"bun": "^1.2.17",
|
45
|
+
"concurrently": "^9.2.0",
|
46
|
+
"prettier": "3.6.0",
|
46
47
|
"semantic-release": "^22.0.12",
|
47
48
|
"typescript": "5.x"
|
48
49
|
},
|