learnwithcc/directus-marketplace-search-mcp
If you are the rightful owner of directus-marketplace-search-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Directus Marketplace Search MCP Server is a high-performance server designed for searching the Directus Marketplace, leveraging the Model Context Protocol (MCP) and deployed on Cloudflare Workers for optimal global edge performance.
Directus Marketplace Search MCP Server
š Search and discover Directus extensions directly from your AI assistant
An intelligent Model Context Protocol (MCP) server that enables AI assistants like Claude, Cursor, and others to search the Directus marketplace. Get conversational recommendations for Directus extensions with popularity indicators, descriptions, and direct links.
š For Users: Get Started in 30 Seconds
Claude Desktop (Recommended)
- Open your Claude Desktop configuration at
~/.claude/claude_desktop_config.json
- Add this configuration:
{
"mcpServers": {
"directus-marketplace": {
"command": "npx",
"args": ["directus-marketplace-mcp"]
}
}
}
- Restart Claude Desktop
- Start asking: "Find me a chart extension for Directus" or "What are the most popular Directus interfaces?"
Cursor IDE
- Open Cursor settings
- Navigate to MCP settings
- Add server:
npx directus-marketplace-mcp
- Restart Cursor
Other AI Assistants
For AI assistants that support MCP:
Simple setup:
npx directus-marketplace-mcp
Direct connection:
- Server URL:
https://directus-marketplace-search-mcp.focuslab.workers.dev/mcp
- Protocol: MCP Streamable HTTP (2024-11-05, 2025-06-18)
⨠What You Can Ask
- "Find popular chart extensions for Directus"
- "What interfaces are available for file uploads?"
- "Show me the latest dashboard panels"
- "Find extensions for e-commerce workflows"
- "What's the most popular display extension?"
You'll get conversational responses with:
- š Popularity indicators (downloads/month)
- š Clear descriptions of what each extension does
- š Direct links to GitHub repos and NPM packages
- š·ļø Extension categories and filtering
š Free vs Unlimited
Free Tier (Public Server)
- ā 100 requests per hour per IP address
- ā 500 requests per day per IP address
- ā Perfect for evaluation and light usage
- ā No signup required
Great for trying out the service and occasional searches
Unlimited (Your Own Instance)
- ā No rate limits whatsoever
- ā Deploy in under 5 minutes
- ā Likely free under Cloudflare's generous limits
- ā Global edge performance
Perfect for teams, heavy usage, or commercial projects
š Deploy Your Own (No Rate Limits)
Want unlimited requests? Deploy your own instance in minutes:
One-Click Deploy
git clone https://github.com/learnwithcc/directus-marketplace-search-mcp.git
cd directus-marketplace-search-mcp
chmod +x deploy/deploy.sh
./deploy/deploy.sh
The deploy script will:
- ā Set up Cloudflare authentication
- ā Create necessary cloud resources
- ā Deploy your unlimited instance
- ā Provide your custom server URL
After Deployment
Your instance will have:
- š« Zero rate limits - unlimited requests
- š Global edge deployment - sub-second responses worldwide
- š° Likely free hosting - Cloudflare's generous free tier covers most usage
- š Your own data - complete control and privacy
Update your Claude Desktop config with your new server:
{
"mcpServers": {
"directus-marketplace": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-worker-name.your-subdomain.workers.dev/mcp"
]
}
}
}
Cost Estimate for Self-Hosting
Most users stay within Cloudflare's free tier:
- š Free: Up to 10M requests/month + 30M CPU milliseconds/month
- šµ Paid: $5/month minimum only if you exceed free limits
Real usage examples:
- Small team (10 users): Free
- Medium team (100 users): Free
- Large team (1000+ users): ~$5-15/month
š ļø Available Tools & Features
The server provides three AI-friendly search tools:
search_extensions
Find Directus extensions with intelligent filtering and popularity indicators.
Example: "Search for chart extensions"
I found 5 Directus extensions for "charts"!
**directus-extension-tradingview-panel**
A directus panel that show tradingview charts.
[View on GitHub](https://github.com/seymoe/directus-extension-tradingview-panel)
**directus-extension-display-link** (Very popular!)
Display URLs, phone numbers, and emails with a link button in Directus
[View on GitHub](https://github.com/jacoborus/directus-extension-display-link)
get_extension_details
Get comprehensive information about a specific extension.
get_extension_categories
Explore all available extension types with helpful descriptions.
Extension Categories:
- Interfaces - Custom field input components
- Displays - Custom field display components
- Layouts - Collection view layouts
- Panels - Dashboard widgets
- Modules - Full-page application sections
- Hooks - Server-side event handlers
- Endpoints - Custom API routes
- Operations - Flow operation nodes
- Themes - Custom styling and themes
š Usage Monitoring
Check your usage anytime:
- Personal stats:
https://directus-marketplace-search-mcp.focuslab.workers.dev/usage
- Server analytics:
https://directus-marketplace-search-mcp.focuslab.workers.dev/admin/stats
Rate limit headers included in all responses:
X-RateLimit-Limit
: Your current limitX-RateLimit-Remaining
: Requests remainingX-RateLimit-Reset
: When the limit resets
š Support & Help
Common Issues
ā "I don't see the tools in Claude Desktop"
- Restart Claude Desktop after adding the configuration
- Check your
claude_desktop_config.json
syntax - Try the NPX command directly:
npx directus-marketplace-mcp
ā "Rate limit exceeded"
- You've hit the 100/hour or 500/day limit on the public server
- Deploy your own unlimited instance (takes 5 minutes)
- Or wait for the rate limit to reset
ā "No results found"
- Try broader search terms like "interface" or "display"
- Check extension categories with the categories tool
- Some extensions might not be tagged properly
Get Help
- š Issues: GitHub Issues
- š¬ Discussions: GitHub Discussions
- š MCP Documentation: Model Context Protocol
- š„ Server Health: Health Check
š§ For Developers: Technical Documentation
Features
- š Edge Performance: Deployed on Cloudflare Workers global network
- š Comprehensive Search: Search Directus extensions by name, description, keywords
- š¦ Extension Categories: Filter by interface, display, layout, panel, module, hook, endpoint, operation, theme
- ā” Smart Caching: Workers KV caching for sub-second response times
- š”ļø Security First: Input validation, sanitization, and rate limiting
- š Protocol Negotiation: Supports both 2024-11-05 and 2025-06-18 MCP versions
- š¬ Conversational Results: AI-friendly responses for natural interactions
- š Real-time Data: Direct integration with npm registry for up-to-date results
- š„ļø Universal Compatibility: Works with Claude Desktop, web clients, and custom MCP implementations
- š¦ Smart Rate Limiting: Configurable limits with upgrade messaging
- š Usage Monitoring: Real-time analytics and cost estimation
API Endpoints
When deployed, the server exposes these HTTP endpoints:
/mcp
: MCP protocol endpoint with automatic version negotiation/health
: Health check endpoint/usage
: Personal usage statistics and rate limit info/admin/stats
: Server-wide analytics and cost estimation/
: Server information, supported protocol versions, and available tools
Local Development
-
Clone the repository:
git clone https://github.com/learnwithcc/directus-marketplace-search-mcp.git cd directus-marketplace-search-mcp
-
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Run type checking:
npm run type-check
-
Run linting:
npm run lint
Testing
# Run tests
npm test
# Run tests in CI mode
npm run test:run
Project Structure
directus-marketplace-search-mcp/
āāā src/
ā āāā index.ts # Main worker entry point
ā āāā mcp-simple.ts # MCP server with protocol negotiation
ā āāā services/
ā ā āāā directus.ts # npm registry API integration
ā ā āāā cache.ts # Workers KV caching
ā ā āāā rate-limiter.ts # IP-based rate limiting
ā ā āāā monitoring.ts # Usage analytics and monitoring
ā āāā types/
ā ā āāā worker.ts # Cloudflare Worker types
ā ā āāā directus.ts # Extension and search types
ā āāā utils/
ā āāā validation.ts # Input validation and sanitization
āāā deploy/ # One-click deployment resources
āāā npm-package/ # NPX package for easy distribution
āāā .github/workflows/
ā āāā deploy.yml # CI/CD pipeline
āāā wrangler.toml # Cloudflare Workers config
Rate Limiting Configuration
For your own deployment, rate limiting is completely configurable or can be disabled entirely.
To remove rate limits in your deployment:
- Comment out rate limiting in
src/mcp-simple.ts
:
// Rate limiting (skip for non-functional requests)
// if (request.method !== 'OPTIONS') {
// const clientIP = this.rateLimiter.getClientIP(request);
// const rateLimitResult = await this.rateLimiter.checkRateLimit(clientIP);
// // ... rate limiting logic
// }
- Or adjust limits in
src/services/rate-limiter.ts
:
private static readonly REQUESTS_PER_HOUR = 10000; // Increase limits
private static readonly REQUESTS_PER_DAY = 100000; // Or set very high
- Or disable entirely by setting limits to
Infinity
:
private static readonly REQUESTS_PER_HOUR = Infinity;
private static readonly REQUESTS_PER_DAY = Infinity;
The public server has rate limits to prevent abuse and manage costs. Your own deployment can have whatever limits you choose, including none at all.
Deployment
Automated Deployment (Recommended)
The repository includes GitHub Actions for automated deployment:
-
Set up repository secrets:
CLOUDFLARE_API_TOKEN
: Your Cloudflare API tokenCLOUDFLARE_ACCOUNT_ID
: Your Cloudflare account ID
-
Push to main branch: Deployment happens automatically
Manual Deployment
# Full deployment with checks
npm run deploy
# Quick deployment (skip checks)
npm run deploy:quick
Configuration
Environment Variables
Configure these in your Cloudflare Workers dashboard or via Wrangler:
ENVIRONMENT
: Deployment environment (development
,staging
,production
)DIRECTUS_API_TOKEN
: (Optional) For private marketplace access
KV Namespace
The deployment script automatically creates a KV namespace for caching. You can also create it manually:
wrangler kv:namespace create "CACHE"
Performance
- Global Edge: Deployed on 300+ Cloudflare data centers worldwide
- Sub-second Response: Intelligent caching with Workers KV
- Concurrent Requests: Handles thousands of simultaneous requests
- Zero Cold Starts: Cloudflare Workers architecture
- Protocol Negotiation: Automatic version selection for optimal compatibility
Security
- Input Sanitization: All user inputs are validated and sanitized
- Rate Limiting: Configurable protection against abuse
- CORS Support: Secure cross-origin resource sharing with intelligent origin handling
- No Secrets in Code: Environment-based configuration
- Protocol Security: Supports secure MCP transport with session management
API Integration
The server integrates with the npm registry API to access Directus extensions:
- Data Source:
https://registry.npmjs.org/-/v1/search
- Filtering: Automatic filtering for Directus-specific packages
- Caching: 5-minute cache for search results, 1-hour for package details
- Rate Limiting: Respectful API usage with built-in throttling
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request
License
This project is licensed under the MIT License - see the file for details.
Related Projects
- Directus - Open-source data platform
- Model Context Protocol - Protocol for AI-context integration
- Cloudflare Workers - Serverless computing platform
Built with ā¤ļø for the Directus community
š¤ Powered by Claude Code
Live Server
š Public Instance: https://directus-marketplace-search-mcp.focuslab.workers.dev/mcp
Ready to use with Claude Desktop, MCP clients, and custom integrations!