Skip to main content
Glama

MCP Advisor

MIT License
88
64
  • Apple
  • Linux
MEILISEARCH_LOCAL.md3.85 kB
# Local Meilisearch Integration for MCPAdvisor This integration allows MCPAdvisor to use a local self-hosted Meilisearch instance instead of or as a fallback to the cloud service. ## Quick Start ### 1. Start Local Meilisearch ```bash # Start the local Meilisearch instance pnpm meilisearch:start # Check if it's running pnpm meilisearch:health ``` ### 2. Configure Environment Variables ```bash export MEILISEARCH_INSTANCE=local export MEILISEARCH_LOCAL_HOST=http://localhost:7700 export MEILISEARCH_MASTER_KEY=developmentKey123 ``` ### 3. Run MCPAdvisor MCPAdvisor will now use the local Meilisearch instance for search operations. ## Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `MEILISEARCH_INSTANCE` | Instance type: 'local' or 'cloud' | 'cloud' | | `MEILISEARCH_LOCAL_HOST` | Local Meilisearch URL | 'http://localhost:7700' | | `MEILISEARCH_MASTER_KEY` | Master key for local instance | 'developmentKey' | | `MEILISEARCH_INDEX_NAME` | Index name for local instance | 'mcp_servers' | | `MEILISEARCH_CLOUD_API_KEY` | API key for cloud instance | (built-in default) | ## Testing ### Run All Meilisearch Tests ```bash pnpm test:meilisearch:all ``` ### Run Specific Test Suites ```bash # Unit tests pnpm test:meilisearch:config pnpm test:meilisearch:failover # Integration tests (requires running Meilisearch) pnpm test:meilisearch:local # E2E tests (requires MCP Inspector and Meilisearch) pnpm test:meilisearch:e2e ``` ## Management Commands ```bash # Start local Meilisearch pnpm meilisearch:start # Stop local Meilisearch pnpm meilisearch:stop # View logs pnpm meilisearch:logs # Check health pnpm meilisearch:health ``` ## Features - ✅ **Automatic Failover**: Falls back to cloud instance if local fails - ✅ **Health Monitoring**: Built-in health checks and monitoring - ✅ **Environment-based Configuration**: Easy switching between local/cloud - ✅ **Binary Installation**: Fast and lightweight setup - ✅ **Comprehensive Testing**: Unit, integration, and E2E tests - ✅ **Performance Monitoring**: Response time tracking and comparison ## Architecture The integration uses the Strategy Pattern with a Failover Client: ``` MeilisearchSearchProvider ├── FailoverMeilisearchClient ├── PrimaryClient (LocalMeilisearchController | CloudClient) └── FallbackClient (CloudClient | null) ``` When `MEILISEARCH_INSTANCE=local`: - Primary: Local Meilisearch instance - Fallback: Cloud Meilisearch instance When `MEILISEARCH_INSTANCE=cloud`: - Primary: Cloud Meilisearch instance - Fallback: None ## Troubleshooting ### Local Meilisearch Won't Start ```bash # Check if binary exists ls -la ./meilisearch # Check port conflicts lsof -i :7700 # View detailed logs tail -f meilisearch.log ``` ### Tests Failing ```bash # Ensure Meilisearch is running pnpm meilisearch:health # Check environment variables echo $MEILISEARCH_INSTANCE echo $TEST_MEILISEARCH_HOST # Run with debug output MEILISEARCH_INSTANCE=local pnpm test:meilisearch:local ``` ### Performance Issues - Check available memory: Local Meilisearch is configured with 256MB limit - Monitor response times using the built-in monitoring tools - Consider adjusting Meilisearch configuration for your system resources ## Production Deployment For production use: 1. **Security**: Use a strong master key 2. **Resources**: Monitor system resources and adjust as needed 3. **Persistence**: Ensure data directory permissions are correct 4. **Monitoring**: Enable the monitoring system 5. **Backup**: Implement regular data backups ```bash # Production environment variables export MEILISEARCH_INSTANCE=local export MEILISEARCH_LOCAL_HOST=http://your-meilisearch-host:7700 export MEILISEARCH_MASTER_KEY=your-secure-master-key export MEILISEARCH_INDEX_NAME=mcp_servers_prod ```

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/istarwyh/mcpadvisor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server