mcp-filter 1.0.2 → 1.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 CHANGED
@@ -19,160 +19,198 @@
19
19
 
20
20
  ## Why mcp-filter?
21
21
 
22
- MCP servers expose tools, resources, and prompts to AI agents but you don't always want agents to have access to everything. `mcp-filter` sits between your MCP client and upstream server, filtering what gets through:
22
+ [GitHub MCP Server](https://github.com/github/github-mcp-server) exposes 79 tools — **~52,000 tokens** of context window per request. A PR review agent needs maybe 10 of them. The other 69 (gists, stars, security advisories, dependabot, discussions...) are noise that costs tokens and confuses tool selection.
23
23
 
24
- - **Security** Block destructive operations (`delete_*`, `admin_*`) before they reach the agent
25
- - **Focus** — Whitelist only the tools an agent needs for its specific task
26
- - **Cost** — Fewer tools in context means fewer tokens consumed per request
27
- - **Flexibility** — Works with any MCP server, any MCP client, any transport
24
+ `mcp-filter` sits between your MCP client and upstream server, filtering what gets through:
28
25
 
29
- ## Quick Start
26
+ - **Cost** — 79 tools → 10 tools = ~80% fewer tokens per request
27
+ - **Focus** — Fewer tools means better tool selection by the model
28
+ - **Security** — Block destructive operations (`delete_*`, `push_*`) before they reach the agent
29
+ - **Future-proof** — `--include` whitelists are immune to upstream adding new tools
30
30
 
31
- ```bash
32
- npm install -g mcp-filter
33
- # or use directly with npx (no install needed)
34
- ```
31
+ ## Quick Start
35
32
 
36
- ```bash
37
- # Filter a local MCP server (stdio)
38
- npx mcp-filter --exclude "browser_close" --exclude "browser_evaluate" -- npx @playwright/mcp
33
+ Add mcp-filter to your MCP client config. No install needed — `npx` downloads it automatically.
39
34
 
40
- # Filter a remote MCP server (HTTP) block refunds on Stripe
41
- npx mcp-filter --exclude "create_refund" --upstream-url https://mcp.stripe.com
35
+ **Local server** filter tools from a stdio MCP server:
42
36
 
43
- # Whitelist mode — only allow specific tools
44
- npx mcp-filter --include "browser_navigate" --include "browser_screenshot" -- npx @playwright/mcp
37
+ ```json
38
+ {
39
+ "mcpServers": {
40
+ "playwright-safe": {
41
+ "command": "npx",
42
+ "args": [
43
+ "mcp-filter",
44
+ "--exclude", "browser_close",
45
+ "--exclude", "browser_evaluate",
46
+ "--include", "browser_*",
47
+ "--",
48
+ "npx", "@playwright/mcp@latest"
49
+ ]
50
+ }
51
+ }
52
+ }
45
53
  ```
46
54
 
47
- ## Supported Transports
55
+ **Remote server** — filter tools from an HTTP MCP server:
48
56
 
49
- mcp-filter connects to upstream MCP servers via three transport types:
57
+ ```json
58
+ {
59
+ "mcpServers": {
60
+ "stripe-safe": {
61
+ "command": "npx",
62
+ "args": [
63
+ "mcp-filter",
64
+ "--exclude", "create_refund",
65
+ "--exclude", "delete_*",
66
+ "--upstream-url", "https://mcp.stripe.com"
67
+ ]
68
+ }
69
+ }
70
+ }
71
+ ```
50
72
 
51
- | Transport | Flag | Use Case | Status |
52
- |-----------|------|----------|--------|
53
- | **Stdio** | `-- <command>` | Local servers spawned as subprocesses | Stable |
54
- | **HTTP** | `--upstream-url <url>` | Remote servers via Streamable HTTP | Stable |
55
- | **SSE** | `--transport sse --upstream-url <url>` | Legacy remote servers via Server-Sent Events | Deprecated |
73
+ **Remote server with authentication:**
56
74
 
57
- Transport is auto-detected: `--upstream-url` selects HTTP by default, `-- <command>` selects stdio. Override with `--transport`.
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "api-readonly": {
79
+ "command": "npx",
80
+ "args": [
81
+ "mcp-filter",
82
+ "--exclude", "write_*",
83
+ "--exclude", "delete_*",
84
+ "--upstream-url", "https://api.example.com/mcp",
85
+ "--authorization", "Bearer your-oauth-token"
86
+ ]
87
+ }
88
+ }
89
+ }
90
+ ```
58
91
 
59
- ## Usage
92
+ For additional headers, use `--header "Key: Value"` (repeatable).
60
93
 
61
- ### Local Servers (Stdio)
94
+ This JSON format works with Cursor (`.cursor/mcp.json`), VS Code (`.vscode/mcp.json`), Claude Desktop (`claude_desktop_config.json`), and any MCP client that supports stdio servers.
62
95
 
63
- ```bash
64
- # Exclude specific tools
65
- npx mcp-filter --exclude "playwright*" -- npx @playwright/mcp
96
+ ## Examples: GitHub MCP Server
66
97
 
67
- # Include only specific tools (whitelist)
68
- npx mcp-filter --include "browser_navigate" --include "browser_screenshot" -- npx @playwright/mcp
98
+ The [GitHub MCP Server](https://github.com/github/github-mcp-server) is a good example of a large server that benefits from filtering. All examples below work with any MCP client that supports the JSON config format.
69
99
 
70
- # Rsync-style: exclude exceptions, then include category
71
- npx mcp-filter --exclude "browser_close" --include "browser_*" -- npx @playwright/mcp
100
+ **PR review agent** whitelist only what's needed (79 → ~10 tools):
72
101
 
73
- # Works with any local MCP server
74
- npx mcp-filter --exclude "debug*" -- node my-mcp-server.js
102
+ ```json
103
+ {
104
+ "mcpServers": {
105
+ "github-pr-review": {
106
+ "command": "npx",
107
+ "args": [
108
+ "mcp-filter",
109
+ "--include", "pull_request_*",
110
+ "--include", "issue_*",
111
+ "--include", "get_file_contents",
112
+ "--include", "list_commits",
113
+ "--include", "search_code",
114
+ "--",
115
+ "github-mcp-server", "stdio"
116
+ ],
117
+ "env": {
118
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
119
+ }
120
+ }
121
+ }
122
+ }
75
123
  ```
76
124
 
77
- ### Remote Servers (HTTP)
125
+ When GitHub adds new tools tomorrow, they won't leak through — only `pull_request_*`, `issue_*`, and the explicitly listed tools are visible.
78
126
 
79
- ```bash
80
- # Block refunds and customer deletion on Stripe
81
- npx mcp-filter --exclude "create_refund" --exclude "delete_*" \
82
- --upstream-url https://mcp.stripe.com
83
-
84
- # Read-only Notion (block all mutations)
85
- npx mcp-filter \
86
- --exclude "create_*" --exclude "update_*" --exclude "delete_*" --exclude "archive_*" \
87
- --upstream-url https://mcp.notion.com/mcp
88
-
89
- # Multiple headers
90
- npx mcp-filter --exclude "write_*" \
91
- --upstream-url https://api.example.com/mcp \
92
- --header "Authorization: Bearer token" \
93
- --header "X-Team-Id: engineering"
94
- ```
95
-
96
- ### Legacy SSE Servers
127
+ **Read-only agent** — exclude all mutations, keep all reads:
97
128
 
98
- ```bash
99
- # SSE transport (deprecated — prefer HTTP for new deployments)
100
- npx mcp-filter --transport sse \
101
- --upstream-url https://mcp.example.com/sse \
102
- --exclude "dangerous_*"
129
+ ```json
130
+ {
131
+ "mcpServers": {
132
+ "github-readonly": {
133
+ "command": "npx",
134
+ "args": [
135
+ "mcp-filter",
136
+ "--exclude", "create_*",
137
+ "--exclude", "update_*",
138
+ "--exclude", "delete_*",
139
+ "--exclude", "push_*",
140
+ "--exclude", "merge_*",
141
+ "--exclude", "fork_*",
142
+ "--exclude", "*_write",
143
+ "--",
144
+ "github-mcp-server", "stdio"
145
+ ],
146
+ "env": {
147
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
148
+ }
149
+ }
150
+ }
151
+ }
103
152
  ```
104
153
 
105
- ## CLI Reference
154
+ **PR tools without merge** — rsync-style, first match wins:
106
155
 
156
+ ```json
157
+ {
158
+ "mcpServers": {
159
+ "github-pr-safe": {
160
+ "command": "npx",
161
+ "args": [
162
+ "mcp-filter",
163
+ "--exclude", "merge_pull_request",
164
+ "--include", "pull_request_*",
165
+ "--include", "list_pull_requests",
166
+ "--include", "search_pull_requests",
167
+ "--",
168
+ "github-mcp-server", "stdio"
169
+ ],
170
+ "env": {
171
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
172
+ }
173
+ }
174
+ }
175
+ }
107
176
  ```
108
- mcp-filter [options] -- <upstream-command>
109
- mcp-filter [options] --upstream-url <url>
110
- ```
111
-
112
- ### Filtering Options
113
-
114
- | Flag | Description |
115
- |------|-------------|
116
- | `--exclude <pattern>` | Exclude items matching glob pattern (repeatable) |
117
- | `--include <pattern>` | Include only items matching glob pattern (repeatable) |
118
-
119
- ### Transport Options
120
-
121
- | Flag | Description |
122
- |------|-------------|
123
- | `--upstream-url <url>` | Connect to remote HTTP/SSE server |
124
- | `--transport <type>` | Transport type: `stdio`, `http`, `sse` (auto-detected) |
125
- | `--header <header>` | HTTP header as `"Key: Value"` (repeatable, HTTP/SSE only) |
126
- | `--` | Separates mcp-filter options from upstream command (stdio only) |
127
-
128
- ### Other Options
129
-
130
- | Flag | Description |
131
- |------|-------------|
132
- | `--help` | Show help message |
133
- | `--version` | Show version number |
134
177
 
135
- > **Note**: `--upstream-url` and `-- <command>` are mutually exclusive.
178
+ `merge_pull_request` matches `--exclude` first, so it's blocked. The remaining `pull_request_*` tools pass through.
136
179
 
137
- ## Filtering Modes
138
-
139
- ### Exclude Mode
180
+ ### Claude Code
140
181
 
141
- Block specific items, allow everything else:
182
+ Claude Code uses `claude mcp add` instead of JSON:
142
183
 
143
184
  ```bash
144
- npx mcp-filter --exclude "browser_close" --exclude "browser_evaluate" -- npx @playwright/mcp
145
- ```
146
-
147
- ### Include Mode (Whitelist)
148
-
149
- Allow only specified items, block everything else:
185
+ # Local server (two -- separators: first for Claude, second for mcp-filter)
186
+ claude mcp add playwright-safe -- \
187
+ npx mcp-filter \
188
+ --exclude "browser_close" \
189
+ --exclude "browser_evaluate" \
190
+ --include "browser_*" \
191
+ -- npx @playwright/mcp@latest
150
192
 
151
- ```bash
152
- npx mcp-filter --include "browser_navigate" --include "browser_screenshot" -- npx @playwright/mcp
193
+ # Remote HTTP server (no second --)
194
+ claude mcp add stripe-safe -- \
195
+ npx mcp-filter \
196
+ --exclude "create_refund" \
197
+ --exclude "delete_*" \
198
+ --upstream-url https://mcp.stripe.com
153
199
  ```
154
200
 
155
- ### Rsync-Style Combination
156
-
157
- Patterns are evaluated **in order** — first match wins. This lets you combine `--include` and `--exclude` for fine-grained control:
201
+ ## Options
158
202
 
159
- ```bash
160
- # Exclude specific tools, then include the rest of the category
161
- npx mcp-filter \
162
- --exclude "browser_close" \
163
- --exclude "browser_evaluate" \
164
- --include "browser_*" \
165
- -- npx @playwright/mcp
166
-
167
- # Evaluation:
168
- # browser_close → matches --exclude "browser_close" → EXCLUDED
169
- # browser_evaluate → matches --exclude "browser_evaluate" → EXCLUDED
170
- # browser_navigate → matches --include "browser_*" → included
171
- # browser_screenshot → matches --include "browser_*" → included
172
- # some_other_tool → no match, --include exists → excluded (whitelist mode)
173
- ```
203
+ | Option | Description |
204
+ |--------|-------------|
205
+ | `--exclude <pattern>` | Exclude items matching glob pattern (repeatable) |
206
+ | `--include <pattern>` | Include only items matching glob pattern (repeatable) |
207
+ | `--upstream-url <url>` | Connect to remote HTTP/SSE server (mutually exclusive with `--`) |
208
+ | `--transport <type>` | Transport type: `stdio`, `http`, `sse` (auto-detected) |
209
+ | `--authorization <value>` | Set Authorization header (e.g. `"Bearer token"`, HTTP/SSE only) |
210
+ | `--header <header>` | HTTP header as `"Key: Value"` (repeatable, HTTP/SSE only) |
211
+ | `--` | Separates mcp-filter options from upstream command (stdio only) |
174
212
 
175
- > **Order matters!** `--exclude "browser_close" --include "browser_*"` excludes `browser_close` then includes the rest. Reversing the order would include `browser_close` (it matches `browser_*` first).
213
+ ## Filtering
176
214
 
177
215
  ### Pattern Syntax
178
216
 
@@ -186,7 +224,7 @@ Patterns use glob syntax via [minimatch](https://github.com/isaacs/minimatch):
186
224
  | `exact_name` | Exact match only |
187
225
  | `*` | Everything |
188
226
 
189
- ### Default Behavior
227
+ ### Modes
190
228
 
191
229
  | Configuration | Unmatched items are... |
192
230
  |---------------|------------------------|
@@ -195,233 +233,41 @@ Patterns use glob syntax via [minimatch](https://github.com/isaacs/minimatch):
195
233
  | `--include` only | Excluded (whitelist mode) |
196
234
  | Mixed | Excluded if any `--include` exists |
197
235
 
198
- ## MCP Spec Conformance
199
-
200
- mcp-filter is a fully conformant MCP proxy. It transparently forwards all MCP protocol features while applying filters only to list/call operations.
201
-
202
- ### Filtered Operations
236
+ ### Rsync-Style Ordering
203
237
 
204
- | Operation | Behavior |
205
- |-----------|----------|
206
- | `tools/list` | Drains all pages, filters by name, returns filtered list |
207
- | `tools/call` | Blocks excluded tools with `-32602 InvalidParams` |
208
- | `resources/list` | Drains all pages, filters by name |
209
- | `resources/templates/list` | Drains all pages, filters by name |
210
- | `resources/read` | Forwarded (filtered resources won't appear in list) |
211
- | `resources/subscribe` | Forwarded to upstream |
212
- | `resources/unsubscribe` | Forwarded to upstream |
213
- | `prompts/list` | Drains all pages, filters by name |
214
- | `prompts/get` | Blocks excluded prompts with `-32602 InvalidParams` |
215
- | `completion/complete` | Blocks if referenced prompt is filtered; forwards resource completions |
216
- | `logging/setLevel` | Forwarded to upstream |
217
-
218
- ### Forwarded Notifications
219
-
220
- | Direction | Notification | Description |
221
- |-----------|-------------|-------------|
222
- | Upstream → Downstream | `notifications/tools/list_changed` | Tool list changed |
223
- | Upstream → Downstream | `notifications/resources/list_changed` | Resource list changed |
224
- | Upstream → Downstream | `notifications/prompts/list_changed` | Prompt list changed |
225
- | Upstream → Downstream | `notifications/resources/updated` | Resource content updated |
226
- | Upstream → Downstream | `notifications/message` | Log messages |
227
- | Downstream → Upstream | `notifications/roots/list_changed` | Client roots changed |
228
-
229
- ### Reverse-Direction Requests (Server → Client)
230
-
231
- | Request | Description |
232
- |---------|-------------|
233
- | `sampling/createMessage` | Forwarded from upstream to downstream client |
234
- | `roots/list` | Forwarded from upstream to downstream client |
235
- | `elicitation/create` | Forwarded from upstream to downstream client |
236
-
237
- ### Protocol Features
238
-
239
- | Feature | Support |
240
- |---------|---------|
241
- | **Capability gating** | Only advertises capabilities the upstream server supports |
242
- | **Instructions forwarding** | Upstream server instructions passed through to downstream |
243
- | **Pagination** | Drains all pages before filtering (max 100 pages) |
244
- | **Progress notifications** | Forwarded on `tools/call`, `prompts/get`, `resources/read` |
245
- | **Cancellation propagation** | Downstream abort triggers upstream `notifications/cancelled` |
246
- | **Graceful shutdown** | SIGINT/SIGTERM cleanly close both transports |
247
- | **Connection timeout** | 30-second timeout prevents hang on unreachable servers |
248
-
249
- ## Architecture
250
-
251
- ```
252
- ┌─────────────┐ ┌──────────────────────────────────────┐ ┌──────────────┐
253
- │ MCP Client │ stdio │ mcp-filter │ stdio/ │ Upstream │
254
- │ (Claude, │◄───────►│ │ HTTP/ │ MCP Server │
255
- │ Cursor, │ │ ┌────────┐ ┌────────┐ ┌────────┐ │ SSE │ (Playwright, │
256
- │ etc.) │ │ │ Server │→ │ Filter │→ │ Client │◄┼────────►│ Notion, │
257
- │ │ │ └────────┘ └────────┘ └────────┘ │ │ etc.) │
258
- └─────────────┘ └──────────────────────────────────────┘ └──────────────┘
259
- ```
260
-
261
- **Four-layer design:**
262
-
263
- 1. **CLI** (`src/cli.ts`) — Parses arguments into a typed `FilterConfig`
264
- 2. **Transport Factory** (`src/transport.ts`) — Creates the appropriate client transport (stdio/HTTP/SSE)
265
- 3. **Filter Engine** (`src/filter.ts`) — Glob pattern matching via minimatch
266
- 4. **Proxy Server** (`src/proxy.ts`) — Dual-role MCP client + server with two-phase initialization
267
-
268
- ## Integration Guides
269
-
270
- ### Claude Code
271
-
272
- ```bash
273
- # Add a filtered MCP server
274
- claude mcp add playwright-safe -- \
275
- npx mcp-filter \
276
- --exclude "browser_close" \
277
- --exclude "browser_evaluate" \
278
- --include "browser_*" \
279
- -- npx @playwright/mcp@latest
280
-
281
- # Scopes: local (default), user (all projects), project (team-shared .mcp.json)
282
- claude mcp add --scope user playwright-safe -- \
283
- npx mcp-filter --include "browser_*" -- npx @playwright/mcp@latest
284
- ```
285
-
286
- **Remote HTTP server (no second `--`):**
287
-
288
- ```bash
289
- claude mcp add stripe-safe -- \
290
- npx mcp-filter \
291
- --exclude "create_refund" \
292
- --exclude "delete_*" \
293
- --upstream-url https://mcp.stripe.com
294
- ```
295
-
296
- **Command structure:** first `--` separates Claude options from mcp-filter; second `--` separates mcp-filter options from the upstream command.
297
-
298
- <details>
299
- <summary>More Claude Code examples</summary>
300
-
301
- **Read-only monitoring agent:**
302
-
303
- ```bash
304
- claude mcp add browser-monitor -- \
305
- npx mcp-filter \
306
- --include "browser_navigate" \
307
- --include "browser_snapshot" \
308
- --include "browser_console_messages" \
309
- --include "browser_network_requests" \
310
- --include "browser_take_screenshot" \
311
- -- npx @playwright/mcp@latest
312
- ```
313
-
314
- **Testing agent (no destructive actions):**
315
-
316
- ```bash
317
- claude mcp add browser-test -- \
318
- npx mcp-filter \
319
- --exclude "browser_close" \
320
- --exclude "browser_tabs" \
321
- --exclude "browser_evaluate" \
322
- --include "browser_*" \
323
- -- npx @playwright/mcp@latest
324
- ```
325
-
326
- **Managing servers:**
327
-
328
- ```bash
329
- claude mcp list # List all servers
330
- claude mcp get playwright-safe # Show server details
331
- claude mcp remove playwright-safe # Remove a server
332
- ```
333
-
334
- </details>
335
-
336
- ### Cursor IDE
337
-
338
- Add to `.cursor/mcp.json` or `~/.cursor/mcp.json`:
238
+ Patterns are evaluated **in order** — first match wins. This lets you combine `--include` and `--exclude` for fine-grained control:
339
239
 
340
240
  ```json
341
- {
342
- "mcpServers": {
343
- "playwright-safe": {
344
- "command": "npx",
345
- "args": [
346
- "mcp-filter",
347
- "--exclude", "browser_close",
348
- "--exclude", "browser_evaluate",
349
- "--include", "browser_*",
350
- "--",
351
- "npx", "@playwright/mcp@latest"
352
- ]
353
- }
354
- }
355
- }
241
+ "args": [
242
+ "mcp-filter",
243
+ "--exclude", "merge_pull_request",
244
+ "--include", "pull_request_*",
245
+ "--include", "list_pull_requests",
246
+ "--",
247
+ "github-mcp-server", "stdio"
248
+ ]
356
249
  ```
357
250
 
358
- <details>
359
- <summary>More Cursor examples</summary>
360
-
361
- **Whitelist mode:**
362
-
363
- ```json
364
- {
365
- "mcpServers": {
366
- "playwright-readonly": {
367
- "command": "npx",
368
- "args": [
369
- "mcp-filter",
370
- "--include", "browser_navigate",
371
- "--include", "browser_screenshot",
372
- "--include", "browser_snapshot",
373
- "--",
374
- "npx", "@playwright/mcp@latest"
375
- ]
376
- }
377
- }
378
- }
379
251
  ```
380
-
381
- **Remote HTTP server (Stripe — block refunds):**
382
-
383
- ```json
384
- {
385
- "mcpServers": {
386
- "stripe-safe": {
387
- "command": "npx",
388
- "args": [
389
- "mcp-filter",
390
- "--exclude", "create_refund",
391
- "--exclude", "delete_*",
392
- "--upstream-url", "https://mcp.stripe.com"
393
- ]
394
- }
395
- }
396
- }
252
+ merge_pull_request → matches --exclude → EXCLUDED
253
+ pull_request_read → matches --include → included
254
+ list_pull_requests → matches --include → included
255
+ create_gist → no match, --include exists → excluded (whitelist mode)
397
256
  ```
398
257
 
399
- </details>
400
-
401
- ### Any MCP Client
402
-
403
- mcp-filter works with any MCP client that supports stdio servers. The upstream server can be local (stdio) or remote (HTTP/SSE):
404
-
405
- ```json
406
- {
407
- "command": "npx",
408
- "args": ["mcp-filter", "--exclude", "pattern", "--", "npx", "your-mcp-server"]
409
- }
410
- ```
258
+ > **Order matters!** `--exclude "merge_pull_request" --include "pull_request_*"` blocks merge then includes the rest. Reversing the order would include `merge_pull_request` (it matches `pull_request_*` first).
411
259
 
412
260
  ## Common Mistakes
413
261
 
414
262
  ### JSON args must be separate strings
415
263
 
416
- In JSON configs (Claude Desktop, Cursor, VS Code), each argument must be its own array element. The shell splits arguments for you — JSON doesn't.
264
+ In JSON configs, each argument must be its own array element. The shell splits arguments for you — JSON doesn't.
417
265
 
418
- **WRONG:**
419
- ```json
266
+ ```jsonc
267
+ // WRONG
420
268
  "args": ["mcp-filter", "--include browser_*", "--", "npx", "server"]
421
- ```
422
269
 
423
- **CORRECT:**
424
- ```json
270
+ // CORRECT
425
271
  "args": ["mcp-filter", "--include", "browser_*", "--", "npx", "server"]
426
272
  ```
427
273
 
@@ -434,11 +280,9 @@ Put `--exclude` patterns **before** `--include` to create exceptions. First matc
434
280
  ```bash
435
281
  # CORRECT: exclude first, then include the rest
436
282
  --exclude "browser_close" --include "browser_*"
437
- # Result: browser_close blocked, other browser_* allowed
438
283
 
439
- # WRONG order: include matches first, exclude never fires
284
+ # WRONG: include matches first, exclude never fires
440
285
  --include "browser_*" --exclude "browser_close"
441
- # Result: ALL browser_* allowed including browser_close
442
286
  ```
443
287
 
444
288
  ### Two `--` separators in Claude Code
@@ -451,30 +295,13 @@ claude mcp add my-server -- npx mcp-filter --exclude "dangerous_*" -- npx upstre
451
295
  # Claude's -- mcp-filter's --
452
296
  ```
453
297
 
454
- ## Programmatic API
455
-
456
- mcp-filter exports its core modules for use in custom tooling:
457
-
458
- ```typescript
459
- import { FilterEngine } from 'mcp-filter/filter';
460
- import { ProxyServer } from 'mcp-filter/proxy';
461
- import { createTransport } from 'mcp-filter/transport';
462
- import type { FilterConfig, TransportConfig } from 'mcp-filter/types';
463
- ```
464
-
465
- ## Testing
466
-
467
- 187+ tests across 15 test suites covering unit tests, integration tests with real MCP servers, and full spec compliance validation.
468
-
469
- ```bash
470
- pnpm test # Run all tests
471
- pnpm test:coverage # With coverage report
472
- pnpm test tests/unit/ # Unit tests only (fast)
473
- ```
474
-
475
- Tests run on **Node 20, 22, and 24** via GitHub Actions CI.
298
+ ## Transports
476
299
 
477
- See [TESTING.md](TESTING.md) for the full testing guide.
300
+ | Transport | Flag | Use Case | Status |
301
+ |-----------|------|----------|--------|
302
+ | **Stdio** | `-- <command>` | Local servers spawned as subprocesses | Stable |
303
+ | **HTTP** | `--upstream-url <url>` | Remote servers via Streamable HTTP | Stable |
304
+ | **SSE** | `--transport sse --upstream-url <url>` | Legacy remote servers via Server-Sent Events | Deprecated |
478
305
 
479
306
  ## Development
480
307
 
@@ -486,13 +313,15 @@ pnpm run build
486
313
  pnpm test
487
314
  ```
488
315
 
489
- See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
316
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines and [TESTING.md](TESTING.md) for the testing guide.
490
317
 
491
318
  ## Links
492
319
 
493
320
  - [npm package](https://www.npmjs.com/package/mcp-filter)
494
321
  - [GitHub repository](https://github.com/baranovxyz/mcp-filter)
495
322
  - [Changelog](CHANGELOG.md)
323
+ - [Spec conformance](docs/spec-conformance.md)
324
+ - [Architecture decisions](docs/architecture-decisions.md)
496
325
  - [MCP specification](https://modelcontextprotocol.io)
497
326
 
498
327
  ## License
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAGb,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAoKtD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAGb,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CA6KtD"}
package/dist/cli.js CHANGED
@@ -98,6 +98,14 @@ export function parseArgs(args) {
98
98
  headers[key] = value;
99
99
  continue;
100
100
  }
101
+ if (arg === "--authorization") {
102
+ const value = args[++i];
103
+ if (!value) {
104
+ throw new Error("--authorization requires a value (e.g. 'Bearer token')");
105
+ }
106
+ headers["Authorization"] = value;
107
+ continue;
108
+ }
101
109
  if (arg === "--help" || arg === "-h") {
102
110
  throw new Error("help");
103
111
  }
@@ -150,7 +158,7 @@ export function parseArgs(args) {
150
158
  throw new Error(`--transport ${explicitTransport} requires --upstream-url. Use --transport stdio or omit --transport for command-based servers.`);
151
159
  }
152
160
  if (Object.keys(headers).length > 0) {
153
- throw new Error("--header can only be used with --upstream-url");
161
+ throw new Error("--header/--authorization can only be used with --upstream-url");
154
162
  }
155
163
  transportConfig = {
156
164
  type: "stdio",
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ function printUsage() {
19
19
  console.error(" --upstream-url <url> Connect to HTTP/SSE server (mutually exclusive with --)");
20
20
  console.error(" --transport <type> Transport type: stdio, http, sse (auto-detected if omitted)");
21
21
  console.error(" --header <header> Add HTTP header (format: 'Key: Value', HTTP/SSE only)");
22
+ console.error(" --authorization <value> Set Authorization header (e.g. 'Bearer token', HTTP/SSE only)");
22
23
  console.error(" --help Show this help message");
23
24
  console.error(" --version Show version number");
24
25
  console.error("");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-filter",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "MCP server proxy to filter tools, resources, and prompts from upstream MCP servers",
5
5
  "type": "module",
6
6
  "bin": {