Skip to content

Releases: ben-vargas/obsidian-vectorize-mcp

v0.1.5: OAuth TTL Extension & ES Module Fixes

26 Aug 22:09
0d91d4e

Choose a tag to compare

🚀 Key Improvements

🔐 Extended OAuth Token Lifetime

  • Problem Solved: Claude Code (CLI) users were experiencing frequent re-authentication prompts (daily)
  • Solution: Extended default OAuth access token TTL from 1 hour to 30 days
  • Configurable: Set OAUTH_ACCESS_TOKEN_TTL in wrangler.toml for custom durations (e.g., 90 days)
  • Note: Web clients (claude.ai, ChatGPT) are unaffected as they handle token refresh automatically

📦 ES Module Compatibility

  • Fixed TypeScript script compatibility issues (#4)
  • All scripts now properly support ES modules
  • Resolved import path and module resolution errors

🛠️ Configuration

To customize OAuth token lifetime, add to your wrangler.toml:

[vars]
OAUTH_ACCESS_TOKEN_TTL = "7776000"  # 90 days in seconds

📚 Documentation Updates

  • Enhanced troubleshooting guide with OAuth TTL configuration
  • Added note for Claude Code users in README
  • Improved configuration examples

🔧 Changes

  • Extended default accessTokenTTL to 30 days
  • Made TTL configurable via environment variable
  • Fixed ES module imports in all TypeScript scripts
  • Updated package version to 0.1.5

💡 Upgrade Instructions

  1. Pull latest changes: git pull
  2. (Optional) Add OAUTH_ACCESS_TOKEN_TTL to your wrangler.toml
  3. Deploy: obvec deploy
  4. Re-authenticate once to get the new longer-lived token

Full Changelog: v0.1.4...v0.1.5

v0.1.4 - ES Module Compatibility Fix

23 Aug 22:46
33e4af5

Choose a tag to compare

🐛 Bug Fixes

ES Module Compatibility

  • Fixed ES module compatibility issues in all TypeScript scripts
  • Replaced CommonJS patterns (__dirname, require.main) with ES module equivalents
  • All scripts now use import.meta.url and fileURLToPath for proper module resolution

Script Improvements

  • Added dotenv loading to cleanup-orphaned.ts and reset-index.ts scripts
  • All CLI scripts now properly load environment variables from .env file
  • Consistent ES module patterns across all TypeScript files

📚 Documentation

Module System Documentation

  • Added MODULE_SYSTEM.md explaining the hybrid module configuration
  • Documented why the project uses both CommonJS (for CLI) and ES modules (for Workers/scripts)
  • Added clarifying comments to tsconfig.json

🧪 Testing

  • All scripts tested and confirmed working:
    • obvec index - Vault indexing
    • obvec search - Note searching
    • obvec stats - Statistics display
    • obvec cleanup - Orphaned note cleanup
    • obvec reset - Index reset

🔧 Technical Details

  • Package Version: 0.1.4
  • Node Compatibility: Requires Node.js with ES module support
  • TypeScript: Uses ESNext module compilation for Cloudflare Workers
  • CLI: Maintains CommonJS compatibility for global npm installation

📦 Installation

```bash
npm install -g [email protected]
```


Full Changelog: v0.1.3...v0.1.4

v0.1.3 - ChatGPT Connector Integration

16 Aug 18:01
9d97ea4

Choose a tag to compare

🎉 New Features

ChatGPT Connector Support

  • Native ChatGPT Integration: Added dedicated endpoints for ChatGPT Connectors (/chatgpt/mcp)
  • OpenAI-Compatible Tools: Implements exact search and fetch tool specifications required by ChatGPT
  • Configurable Score Threshold: Control search sensitivity with CHATGPT_MIN_SCORE environment variable
  • Optional QDF Support: Time-based result boosting with CHATGPT_USE_QDF for freshness-aware searches

📚 Documentation

  • Added comprehensive ChatGPT Integration Guide with:
    • Step-by-step setup instructions
    • Architecture overview
    • Configuration options
    • Troubleshooting guide
    • QDF (Query Deserves Freshness) explanation

🔧 Improvements

  • Enhanced error handling and validation across all endpoints
  • Better separation of concerns with dedicated ChatGPT Durable Object
  • Improved type safety with proper TypeScript definitions
  • Added debug logging for troubleshooting search issues

🔒 Security

  • Maintained OAuth 2.1 authentication for all endpoints
  • Rate limiting applied to ChatGPT endpoints
  • Input validation and sanitization for all parameters

📦 Installation

Follow the upgrade guide for existing installations or see the README for new installations.

Quick Start for ChatGPT

  1. Deploy with the new configuration:
    ```bash
    npm run deploy
    ```

  2. Add to ChatGPT:

  3. Start searching:

    • "Search my Obsidian notes for meeting notes from last week"
    • "Find my documentation on API design patterns"

🙏 Contributors

Thanks to all contributors who helped make this release possible!


Full Changelog: v0.1.2...v0.1.3

v0.1.2: Critical Indexing Fixes

06 Aug 00:00

Choose a tag to compare

🚨 Critical Fixes

This release fixes critical issues that prevented proper indexing of Obsidian vaults.

What's Fixed

  • Rate Limiting: Increased from 10 to 100 requests per 15 minutes
  • Path Validation: Now accepts files with spaces and special characters

Impact

  • Files with spaces, ampersands, parentheses, and other special characters now index correctly
  • Large vaults (100+ notes) can now be indexed in a single session without hitting rate limits
  • No more "Invalid path" errors for common filename patterns

Changes

  • 🔧 Fixed overly restrictive path sanitization that rejected files with spaces or special characters
  • 📈 Increased API rate limits to allow indexing 1000+ notes in one session
  • ✅ Only truly dangerous characters are now blocked (null bytes, control chars, path traversal)

Upgrading

If you experienced indexing issues:

  1. Update to v0.1.2
  2. Run obvec index to re-index your vault
  3. All your notes should now index successfully

Full Changelog: v0.1.1...v0.1.2

v0.1.1 - Security Update

03 Aug 00:51

Choose a tag to compare

🔒 Security Update

This release addresses critical security vulnerabilities and improves overall system robustness.

🛡️ Security Fixes

  • XSS Protection: Added HTML escaping for all user inputs in OAuth pages
  • CSRF Protection: Implemented one-time tokens for authorization forms
  • Path Traversal Prevention: Comprehensive path validation to prevent directory traversal attacks
  • Timing Attack Protection: Constant-time comparison for Bearer token authentication

🚀 Performance & Functionality Improvements

  • Large Vault Support: R2 pagination now handles vaults with >1000 files correctly
  • Memory Optimization: Process embeddings in batches to prevent memory exhaustion
  • Error Handling: Robust validation of AI embedding responses
  • Input Validation: All search parameters now properly validated (limits 1-50)
  • Rate Limiting: All API endpoints now protected (10 requests per 15 minutes)

🔧 Other Improvements

  • Dynamic vector dimensions from environment variables
  • Improved stats endpoint documentation
  • Better TypeScript type safety throughout

📦 Installation

npm install -g [email protected]

🙏 Credits

Thanks to code review feedback that identified these important security issues.

Full Changelog: v0.1.0...v0.1.1

v0.1.0 - Initial Release

02 Aug 21:32

Choose a tag to compare

🚀 Initial Release of Obsidian Vectorize MCP

Transform your Obsidian vault into a searchable, AI-accessible knowledge base using serverless Cloudflare Workers and the Model Context Protocol (MCP).

✨ Features

  • Semantic Search: AI-powered search through your Obsidian notes
  • MCP Integration: Works with Claude Desktop and other MCP clients
  • Serverless: Runs on Cloudflare Workers with global edge deployment
  • Smart Indexing: Automatic re-indexing with timestamp-based change detection
  • OAuth Authentication: Secure access with OAuth 2.1 + PKCE
  • CLI Tools: Complete command-line interface for management

🛠️ What's Included

  • MCP server implementation with 4 semantic search tools
  • Cloudflare Workers deployment with Vectorize, R2, and KV storage
  • Complete CLI for indexing, searching, and managing your vault
  • OAuth 2.1 authentication with secure token management
  • Smart re-indexing based on file modification timestamps
  • Comprehensive documentation and setup guides

📦 Installation

npm install -g obvec

🔗 Links

Perfect for researchers, developers, and knowledge workers who want AI-powered access to their personal notes and documentation.