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 CHANGED
@@ -1,21 +1,20 @@
1
1
  # Outline MCP Server
2
2
 
3
+ [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=outline&config=eyJjb21tYW5kIjoibnB4IC15IC0tcGFja2FnZT1vdXRsaW5lLW1jcC1zZXJ2ZXJAbGF0ZXN0IC1jIG91dGxpbmUtbWNwLXNlcnZlci1zdGRpbyIsImVudiI6eyJPVVRMSU5FX0FQSV9LRVkiOiI8UkVQTEFDRV9NRT4iLCJPVVRMSU5FX0FQSV9VUkwiOiJodHRwczovL2FwcC5nZXRvdXRsaW5lLmNvbS9hcGkiLCJPVVRMSU5FX01DUF9QT1JUIjoiNjA2MCJ9fQ%3D%3D)
4
+
5
+ ![npm](https://img.shields.io/npm/v/outline-mcp-server) • ![downloads](https://img.shields.io/npm/dy/outline-mcp-server)
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
- ### Installation
51
+ ### Running directly
55
52
 
56
53
  ```bash
57
- # (preferred) Run directly with npx
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
- # or install from npm
61
- npm install -g outline-mcp-server
62
- OUTLINE_API_KEY=... outline-mcp-server
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(`Outline MCP Server (streamable-http) running at ${address}/mcp`);
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.0",
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.12.1",
33
- "axios": "1.9.0",
34
- "bun": "^1.2.15",
33
+ "@modelcontextprotocol/sdk": "1.13.1",
34
+ "axios": "1.10.0",
35
35
  "dotenv": "16.5.0",
36
- "fastify": "^4.28.1",
36
+ "fastify": "5.4.0",
37
37
  "omit-ts": "^2.0.1",
38
- "zod": "3.25.61"
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.x",
44
- "concurrently": "^9.1.2",
45
- "prettier": "^3.2.5",
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
  },