reddit-mcp-buddy 1.1.12 → 1.1.14

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
@@ -2,9 +2,8 @@
2
2
 
3
3
  ### Reddit Browser for Claude Desktop and AI Assistants
4
4
 
5
- A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that enables Claude Desktop and other AI assistants to browse Reddit, search posts, and analyze user activity. Clean, fast, and actually works - no API keys required.
5
+ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that enables Claude Desktop and other AI assistants to browse Reddit, search posts, and analyze user activity. Clean, fast, and actually works - browse subreddits with no API keys; add free Reddit credentials for search, comments, user analysis, and full metrics.
6
6
 
7
- [![MCP Registry](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.modelcontextprotocol.io%2Fv0%2Fservers%3Fsearch%3Dreddit-mcp-buddy&query=%24.servers%5B-1%3A%5D.version&label=MCP%20Registry&color=blue)](https://registry.modelcontextprotocol.io/v0/servers/5677b351-373d-4137-bc58-28f1ba0d105d)
8
7
  [![npm version](https://img.shields.io/npm/v/reddit-mcp-buddy.svg)](https://www.npmjs.com/package/reddit-mcp-buddy)
9
8
  [![npm downloads](https://img.shields.io/npm/dm/reddit-mcp-buddy.svg)](https://www.npmjs.com/package/reddit-mcp-buddy)
10
9
  [![GitHub stars](https://img.shields.io/github/stars/karanb192/reddit-mcp-buddy.svg?style=flat&logo=github&color=brightgreen)](https://github.com/karanb192/reddit-mcp-buddy/stargazers)
@@ -12,13 +11,17 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that en
12
11
 
13
12
  ## 🎬 See It In Action
14
13
 
14
+ ![Reddit MCP Buddy Demo - AirPods Max 2 and Dune Part Three](assets/images/reddit-mcp-buddy-demo-2026.gif)
15
+
16
+ *Claude checking Reddit's reaction to the Dune Part Three trailer and whether the AirPods Max 2 are worth $549*
17
+
15
18
  ![Reddit MCP Buddy Demo - Analyzing H1B sentiment across subreddits](assets/images/reddit-mcp-buddy.gif)
16
19
 
17
20
  *Claude analyzing real-time sentiment about H-1B visa changes across r/cscareerquestions and r/india*
18
21
 
19
22
  ## Table of Contents
20
23
 
21
- - [What makes Reddit MCP Buddy different?](#what-makes-reddit-buddy-different)
24
+ - [What makes Reddit MCP Buddy different?](#what-makes-reddit-mcp-buddy-different)
22
25
  - [Quick Start](#quick-start-30-seconds)
23
26
  - [What can it do?](#what-can-it-do)
24
27
  - [Available Tools](#available-tools)
@@ -36,7 +39,7 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that en
36
39
 
37
40
  ## What makes Reddit MCP Buddy different?
38
41
 
39
- - **🚀 Zero setup** - Works instantly, no Reddit API registration needed
42
+ - **🚀 Zero setup** - Browse subreddits instantly, no Reddit API registration needed (search, comments, user analysis, and engagement metrics need free credentials)
40
43
  - **⚡ Up to 10x more requests** - Three-tier authentication system (10/60/100 requests per minute)
41
44
  - **🎯 Clean data** - No fake "sentiment analysis" or made-up metrics
42
45
  - **🧠 LLM-optimized** - Built specifically for AI assistants like Claude
@@ -99,9 +102,11 @@ Browse posts from any subreddit with sorting options.
99
102
  - Any specific subreddit (e.g., "technology", "programming", "science")
100
103
  - Sort by: hot, new, top, rising, controversial
101
104
  - Time range: hour, day, week, month, year, all (for top/controversial sort)
102
- - Include subreddit info: Optional flag for subreddit metadata
105
+ - Include subreddit info: Optional flag for subreddit metadata (requires credentials)
103
106
  ```
104
107
 
108
+ > **No credentials?** Results are served from Reddit's public RSS feed (`data_source: "rss"`): `score`, `num_comments`, `upvote_ratio`, and `nsfw` come back `null`, and the `include_nsfw` filter can't be applied. Add credentials ([Authentication](#authentication-optional)) for full data via the API.
109
+
105
110
  ### `search_reddit`
106
111
  Search across Reddit or specific subreddits.
107
112
  ```
@@ -183,12 +188,14 @@ Reddit MCP Buddy supports three authentication levels, each with different rate
183
188
 
184
189
  | Mode | Rate Limit | Required Credentials | Best For |
185
190
  |------|------------|---------------------|----------|
186
- | **Anonymous** | 10 req/min | None | Testing, light usage |
191
+ | **Anonymous** | 10 req/min* | None | Testing, light usage |
187
192
  | **App-Only** | 60 req/min | Client ID + Secret | Regular browsing |
188
193
  | **Authenticated** | 100 req/min | All 4 credentials | Heavy usage, automation |
189
194
 
195
+ *\*Server-side cap. Anonymous requests are served from Reddit's logged-out RSS feed, which applies its own stricter per-IP throttle (often one uncached request per 25-60 seconds). The 15-minute cache and automatic retries absorb much of this, but sustained anonymous browsing is effectively slower than 10 req/min.*
196
+
190
197
  #### How It Works:
191
- - **Anonymous Mode**: Default mode, no setup required, uses public Reddit API
198
+ - **Anonymous Mode**: Default mode, no setup required. Only `browse_subreddit` (plus the offline `reddit_explain`) works: Reddit blocks the logged-out JSON API, so browse results come from Reddit's public RSS feed (`data_source: "rss"`) with engagement metrics and NSFW flags as `null`. The remaining tools require credentials.
192
199
  - **App-Only Mode**: Uses OAuth2 client credentials grant (works with both script and web apps)
193
200
  - **Authenticated Mode**: Uses OAuth2 password grant (requires script app type)
194
201
 
@@ -225,7 +232,7 @@ Reddit MCP Buddy is designed with privacy and transparency in mind. Here's how y
225
232
  ### Security Notes
226
233
  - **Read-Only Operations**: All tools are read-only - the server never posts, comments, or modifies any Reddit content
227
234
  - **Credential Safety**:
228
- - OAuth tokens are stored in memory and refreshed automatically
235
+ - OAuth tokens are refreshed automatically and kept in memory; only `--auth` CLI setups also cache the token in `~/.reddit-mcp-buddy/auth.json` (file mode 600)
229
236
  - Client secrets are treated as sensitive and never logged
230
237
  - Use environment variables in Claude Desktop config for maximum security
231
238
  - **Open Source**: Full source code is available at https://github.com/karanb192/reddit-mcp-buddy for security auditing
@@ -288,6 +295,8 @@ REDDIT_BUDDY_PORT=8080 npx -y reddit-mcp-buddy --http
288
295
 
289
296
  **Note:** The server runs in stdio mode by default (for Claude Desktop). Use `--http` flag for testing with Postman MCP or direct API calls.
290
297
 
298
+ ## Installation Options
299
+
291
300
  ### Global Install
292
301
  ```bash
293
302
  npm install -g reddit-mcp-buddy
@@ -305,7 +314,10 @@ npm link
305
314
 
306
315
  ### Using Docker
307
316
  ```bash
308
- docker run -it karanb192/reddit-mcp-buddy
317
+ git clone https://github.com/karanb192/reddit-mcp-buddy.git
318
+ cd reddit-mcp-buddy
319
+ docker build -t reddit-mcp-buddy .
320
+ docker run -it reddit-mcp-buddy
309
321
  ```
310
322
 
311
323
  ### Claude Desktop Extension
@@ -325,13 +337,13 @@ cd reddit-mcp-buddy
325
337
  ./scripts/build-mcpb.sh
326
338
  ```
327
339
 
328
- **Note**: The Desktop Extension format is currently in preview (September 2025). Most users should use the standard npm installation method shown in [Quick Start](#quick-start-30-seconds).
340
+ **Note**: Most users should use the standard npm installation method shown in [Quick Start](#quick-start-30-seconds).
329
341
 
330
342
  ## Comparison with Other Tools
331
343
 
332
344
  | Feature | Reddit MCP Buddy | Other MCP Tools |
333
345
  |---------|-------------|----------------|
334
- | **Zero Setup** | ✅ Works instantly | ❌ Requires API keys |
346
+ | **Zero Setup** | ✅ Browse instantly; free keys unlock the rest | ❌ Keys required for everything |
335
347
  | **Max Rate Limit** | ✅ 100 req/min proven | ❓ Unverified claims |
336
348
  | **Language** | TypeScript/Node.js | Python (most) |
337
349
  | **Tools Count** | 5 (focused) | 8-10 (redundant) |
@@ -349,6 +361,8 @@ cd reddit-mcp-buddy
349
361
  | App-only | 60 | 5 min | Client ID + Secret |
350
362
  | Authenticated | 100 | 5 min | All credentials |
351
363
 
364
+ *Cache TTL applies to subreddit listings. Post details (10 min), search results (10 min), and user profiles (15 min) use fixed TTLs in all modes. Anonymous throughput is additionally bounded by Reddit's own per-IP RSS throttle, which is stricter than 10/min for uncached requests.*
365
+
352
366
  ## Why Reddit MCP Buddy?
353
367
 
354
368
  ### What others do wrong:
@@ -413,12 +427,17 @@ cd reddit-mcp-buddy
413
427
  node --version
414
428
  npm --version
415
429
 
416
- # Try with full npx path
417
- $(npm bin -g)/reddit-mcp-buddy
430
+ # Try the full global-bin path
431
+ $(npm prefix -g)/bin/reddit-mcp-buddy
418
432
  ```
419
433
 
434
+ **Browsing works but search / comments / user analysis fail**
435
+ - Without credentials only `browse_subreddit` (served from Reddit's public RSS feed, no scores or comment counts) and the offline `reddit_explain` work
436
+ - Anonymous browsing can also hit Reddit's own RSS rate limit (HTTP 429); the server retries automatically, but sustained throttling can still fail
437
+ - Solution: Add Reddit credentials (see [Authentication](#authentication-optional))
438
+
420
439
  **Rate limit errors**
421
- - Without auth: Limited to 10 requests/minute
440
+ - Without auth: 10 requests/minute server cap, and Reddit's own RSS feed throttles harder per IP (the server retries automatically)
422
441
  - With app credentials only: 60 requests/minute
423
442
  - With full authentication: 100 requests/minute
424
443
  - Solution: Add Reddit credentials (see [Authentication](#authentication-optional))
@@ -442,15 +461,20 @@ $(npm bin -g)/reddit-mcp-buddy
442
461
  | `REDDIT_CLIENT_SECRET` | Reddit app secret | No | 60 req/min (with ID) |
443
462
  | `REDDIT_USERNAME` | Reddit account username | No | 100 req/min (with all 4) |
444
463
  | `REDDIT_PASSWORD` | Reddit account password | No | 100 req/min (with all 4) |
445
- | `REDDIT_USER_AGENT` | User agent string | No | - |
464
+ | `REDDIT_USER_AGENT` | Custom user agent string (applies when credentials are configured) | No | - |
446
465
 
447
466
  #### Server Configuration
448
467
  | Variable | Description | Default |
449
468
  |----------|-------------|---------|
450
469
  | `REDDIT_BUDDY_HTTP` | Run as HTTP server instead of stdio | `false` |
451
470
  | `REDDIT_BUDDY_PORT` | HTTP server port (when HTTP=true) | `3000` |
471
+ | `REDDIT_BUDDY_HOST` | Interface the HTTP server binds to | `127.0.0.1` |
472
+ | `REDDIT_BUDDY_ALLOWED_ORIGINS` | Comma-separated browser origins allowed to call the HTTP endpoint | none |
473
+ | `REDDIT_BUDDY_ALLOWED_HOSTS` | Comma-separated `host:port` values accepted in the Host header (DNS-rebinding protection) | loopback values when bound to localhost |
452
474
  | `REDDIT_BUDDY_NO_CACHE` | Disable caching (always fetch fresh) | `false` |
453
475
 
476
+ > **HTTP mode has no authentication.** It binds to localhost so only your machine can reach it, and rejects Host headers outside the loopback set. Setting `REDDIT_BUDDY_HOST=0.0.0.0` exposes it to your whole network - only do that on a trusted network (e.g. inside Docker, which sets it deliberately). On a non-loopback bind the Host check is off by default, since clients legitimately arrive with a container IP or service name; set `REDDIT_BUDDY_ALLOWED_HOSTS` to restrict it. Browser requests are rejected unless their origin is listed in `REDDIT_BUDDY_ALLOWED_ORIGINS`; non-browser clients like Postman are unaffected.
477
+
454
478
  ## Technical Details
455
479
 
456
480
  ### Smart Caching System
@@ -458,7 +482,7 @@ $(npm bin -g)/reddit-mcp-buddy
458
482
  Reddit MCP Buddy includes intelligent caching to improve performance and reduce API calls:
459
483
 
460
484
  - **Memory Safe**: Hard limit of 50MB - won't affect your system performance
461
- - **Adaptive TTLs**: Hot posts (5min), New posts (2min), Top posts (30min)
485
+ - **Per-Content TTLs**: Post details (10min), user profiles (15min), search results (10min); subreddit listings use the mode default (15min anonymous, 5min with credentials)
462
486
  - **LRU Eviction**: Automatically removes least-used data when approaching limits
463
487
  - **Hit Tracking**: Optimizes cache based on actual usage patterns
464
488
 
@@ -519,13 +543,13 @@ We keep things simple:
519
543
 
520
544
  ### Official MCP Resources
521
545
  - **[MCP Registry](https://registry.modelcontextprotocol.io)** - Official registry of MCP servers
522
- - **[MCP Specification](https://spec.modelcontextprotocol.io)** - Official Model Context Protocol specification
546
+ - **[MCP Specification](https://modelcontextprotocol.io/specification/latest)** - Official Model Context Protocol specification
523
547
  - **[MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)** - SDK used to build this server
524
548
  - **[MCP Servers Repository](https://github.com/modelcontextprotocol/servers)** - Collection of official MCP server implementations
525
- - **[Awesome MCP Servers](https://github.com/modelcontextprotocol/awesome-mcp-servers)** - Community-curated list of MCP servers
549
+ - **[Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers)** - Community-curated list of MCP servers
526
550
 
527
551
  ### Where to Find This Server
528
- - **[MCP Registry Direct Link](https://registry.modelcontextprotocol.io/v0/servers/5677b351-373d-4137-bc58-28f1ba0d105d)** - Direct API link to this server
552
+ - **[MCP Registry API Link](https://registry.modelcontextprotocol.io/v0/servers?search=reddit-mcp-buddy)** - Direct API query for this server
529
553
  - **[MCP Registry Search](https://registry.modelcontextprotocol.io)** - Search for "reddit" to find all versions
530
554
  - **[NPM Package](https://www.npmjs.com/package/reddit-mcp-buddy)** - Install via npm/npx
531
555
  - **[GitHub Repository](https://github.com/karanb192/reddit-mcp-buddy)** - Source code and issues
@@ -535,9 +559,9 @@ We keep things simple:
535
559
  # Get all versions of reddit-mcp-buddy from the registry
536
560
  curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=reddit-mcp-buddy" | jq
537
561
 
538
- # Get just version numbers and UUIDs
562
+ # Get just names, version numbers, and latest flag
539
563
  curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=reddit-mcp-buddy" | \
540
- jq '.servers[] | {version, id: ._meta."io.modelcontextprotocol.registry/official".id}'
564
+ jq '.servers[] | {name: .server.name, version: .server.version, isLatest: ._meta."io.modelcontextprotocol.registry/official".isLatest}'
541
565
  ```
542
566
 
543
567
  ## License
@@ -546,4 +570,6 @@ MIT - Use it however you want!
546
570
 
547
571
  ---
548
572
 
549
- Made with ❤️ for the MCP community. No venture capital, no tracking, just a good MCP server.
573
+ Made with ❤️ for the MCP community. No venture capital, no tracking, just a good MCP server.
574
+
575
+ Built by [Karan Bansal](https://karanbansal.in) (Head of AI at ArmorCode). I write about Claude Code, MCP, and production agentic AI at [karanbansal.in/blog](https://karanbansal.in/blog/).
@@ -15,6 +15,7 @@ export interface AuthConfig {
15
15
  export declare class AuthManager {
16
16
  private config;
17
17
  private configPath;
18
+ private configFromEnv;
18
19
  private tokenRefreshPromise;
19
20
  private readonly TOKEN_EXPIRATION_BUFFER_MS;
20
21
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,mBAAmB,CAA8B;IAEzD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAS;;IAMpD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA2BxC;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7C;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI;IAI9B;;OAEG;IACH,eAAe,IAAI,OAAO;IAM1B;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;IAQzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB9C;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBzC;;OAEG;YACW,oBAAoB;IA0FlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBnD;;OAEG;IACH,YAAY,IAAI,MAAM;IAQtB;;OAEG;IACH,WAAW,IAAI,MAAM;IAMrB;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;CAiCnD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAI3B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,mBAAmB,CAA8B;IAEzD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAS;;IAMpD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4BxC;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7C;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI;IAI9B;;OAEG;IACH,eAAe,IAAI,OAAO;IAM1B;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;IAQzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB9C;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBzC;;OAEG;YACW,oBAAoB;IA+FlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBnD;;OAEG;IACH,YAAY,IAAI,MAAM;IAQtB;;OAEG;IACH,WAAW,IAAI,MAAM;IAMrB;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;OAEG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;CAiCnD"}
package/dist/core/auth.js CHANGED
@@ -15,6 +15,10 @@ const OAuthTokenResponseSchema = z.object({
15
15
  export class AuthManager {
16
16
  config = null;
17
17
  configPath;
18
+ // True when credentials came from environment variables. Env-supplied
19
+ // credentials are never persisted to auth.json — only the --auth
20
+ // interactive setup (which never calls load()) opts into disk storage.
21
+ configFromEnv = false;
18
22
  // Lock for token refresh to prevent concurrent refresh attempts (race conditions)
19
23
  tokenRefreshPromise = null;
20
24
  // Token expiration buffer (refresh 10 seconds before actual expiration to handle clock drift)
@@ -30,6 +34,7 @@ export class AuthManager {
30
34
  const envConfig = this.loadFromEnv();
31
35
  if (envConfig) {
32
36
  this.config = envConfig;
37
+ this.configFromEnv = true;
33
38
  return this.config;
34
39
  }
35
40
  // Then check config file
@@ -282,11 +287,16 @@ export class AuthManager {
282
287
  this.config.accessToken = data.access_token;
283
288
  this.config.expiresAt = expiresAt;
284
289
  this.config.scope = data.scope;
285
- // Never save password to disk
286
- const configToSave = { ...this.config };
287
- delete configToSave.password;
288
- // Save updated config
289
- await this.save(configToSave);
290
+ // Persist the refreshed token only for file-based (--auth) setups.
291
+ // Env-supplied credentials stay in memory: writing them to auth.json
292
+ // would break the documented "env vars are never persisted" contract.
293
+ if (!this.configFromEnv) {
294
+ // Never save password to disk
295
+ const configToSave = { ...this.config };
296
+ delete configToSave.password;
297
+ // Save updated config
298
+ await this.save(configToSave);
299
+ }
290
300
  }
291
301
  catch (error) {
292
302
  throw new Error(`Failed to refresh access token: ${error}`);
@@ -310,7 +320,7 @@ export class AuthManager {
310
320
  */
311
321
  async getHeaders() {
312
322
  const headers = {
313
- 'User-Agent': 'RedditBuddy/1.0 (by /u/karanb192)',
323
+ 'User-Agent': this.config?.userAgent || 'RedditBuddy/1.0 (by /u/karanb192)',
314
324
  'Accept': 'application/json',
315
325
  'Accept-Language': 'en-US,en;q=0.9',
316
326
  'Cache-Control': 'no-cache'
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,24 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import { CacheManager } from './core/cache.js';
6
6
  import { RedditTools } from './tools/index.js';
7
7
  export declare const SERVER_NAME = "reddit-mcp-buddy";
8
- export declare const SERVER_VERSION = "1.1.12";
8
+ export declare const SERVER_VERSION = "1.1.14";
9
9
  /**
10
10
  * Create MCP server with proper protocol implementation
11
11
  */
12
- export declare function createMCPServer(): Promise<{
12
+ export interface SharedServices {
13
+ cacheManager: CacheManager;
14
+ tools: RedditTools;
15
+ rateLimit: number;
16
+ cacheTTL: number;
17
+ }
18
+ /**
19
+ * Build the long-lived services (auth, cache, rate limiter, Reddit client).
20
+ * These are created ONCE per process and shared by every MCP server instance,
21
+ * so the stateless HTTP path can mint a fresh Server per request without
22
+ * throwing away the cache or resetting the rate limiter.
23
+ */
24
+ export declare function createSharedServices(): Promise<SharedServices>;
25
+ export declare function createMCPServer(shared?: SharedServices): Promise<{
13
26
  server: Server<{
14
27
  method: string;
15
28
  params?: {
@@ -17,6 +30,9 @@ export declare function createMCPServer(): Promise<{
17
30
  _meta?: {
18
31
  [x: string]: unknown;
19
32
  progressToken?: string | number | undefined;
33
+ "io.modelcontextprotocol/related-task"?: {
34
+ taskId: string;
35
+ } | undefined;
20
36
  } | undefined;
21
37
  } | undefined;
22
38
  }, {
@@ -25,12 +41,20 @@ export declare function createMCPServer(): Promise<{
25
41
  [x: string]: unknown;
26
42
  _meta?: {
27
43
  [x: string]: unknown;
44
+ progressToken?: string | number | undefined;
45
+ "io.modelcontextprotocol/related-task"?: {
46
+ taskId: string;
47
+ } | undefined;
28
48
  } | undefined;
29
49
  } | undefined;
30
50
  }, {
31
51
  [x: string]: unknown;
32
52
  _meta?: {
33
53
  [x: string]: unknown;
54
+ progressToken?: string | number | undefined;
55
+ "io.modelcontextprotocol/related-task"?: {
56
+ taskId: string;
57
+ } | undefined;
34
58
  } | undefined;
35
59
  }>;
36
60
  cacheManager: CacheManager;
@@ -38,50 +62,51 @@ export declare function createMCPServer(): Promise<{
38
62
  handlers: {
39
63
  'tools/list': () => Promise<{
40
64
  tools: {
41
- [x: string]: unknown;
42
- name: string;
43
65
  inputSchema: {
44
66
  [x: string]: unknown;
45
67
  type: "object";
46
68
  properties?: {
47
- [x: string]: unknown;
69
+ [x: string]: object;
48
70
  } | undefined;
49
71
  required?: string[] | undefined;
50
72
  };
51
- title?: string | undefined;
73
+ name: string;
52
74
  description?: string | undefined;
53
75
  outputSchema?: {
54
76
  [x: string]: unknown;
55
77
  type: "object";
56
78
  properties?: {
57
- [x: string]: unknown;
79
+ [x: string]: object;
58
80
  } | undefined;
59
81
  required?: string[] | undefined;
60
82
  } | undefined;
61
83
  annotations?: {
62
- [x: string]: unknown;
63
84
  title?: string | undefined;
64
85
  readOnlyHint?: boolean | undefined;
65
86
  destructiveHint?: boolean | undefined;
66
87
  idempotentHint?: boolean | undefined;
67
88
  openWorldHint?: boolean | undefined;
68
89
  } | undefined;
69
- icons?: {
90
+ execution?: {
91
+ taskSupport?: "optional" | "required" | "forbidden" | undefined;
92
+ } | undefined;
93
+ _meta?: {
70
94
  [x: string]: unknown;
95
+ } | undefined;
96
+ icons?: {
71
97
  src: string;
72
98
  mimeType?: string | undefined;
73
- sizes?: string | undefined;
99
+ sizes?: string[] | undefined;
100
+ theme?: "light" | "dark" | undefined;
74
101
  }[] | undefined;
75
- _meta?: {
76
- [x: string]: unknown;
77
- } | undefined;
102
+ title?: string | undefined;
78
103
  }[];
79
104
  }>;
80
105
  'tools/call': (params: any) => Promise<{
81
106
  content: {
82
107
  type: "text" | "image";
83
- text?: string | undefined;
84
108
  data?: string | undefined;
109
+ text?: string | undefined;
85
110
  mimeType?: string | undefined;
86
111
  }[];
87
112
  isError?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAanE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EACL,WAAW,EAMZ,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,WAAW,CAAC;AA2FvC;;GAEG;AACH,wBAAsB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA8GJ,GAAG;;;;;;;;;;GAoDnC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,kBA4BrC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE,MAAa,iBAsLxD"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAanE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EACL,WAAW,EAMZ,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,WAAW,CAAC;AA2FvC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAqCpE;AAED,wBAAsB,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6E5B,GAAG;;;;;;;;;;GAoDnC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,kBA4BrC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE,MAAa,iBA6PxD"}