{"id":31931253,"url":"https://github.com/devora-as/devora-prompt-assistant-mcp","last_synced_at":"2026-01-20T17:38:12.827Z","repository":{"id":318728257,"uuid":"1074423313","full_name":"Devora-AS/devora-prompt-assistant-mcp","owner":"Devora-AS","description":"A production-ready MCP server for enhancing developer prompts with multi-provider AI support.🤖 🚀","archived":false,"fork":false,"pushed_at":"2025-10-12T14:36:08.000Z","size":358,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-13T07:54:14.677Z","etag":null,"topics":["anthropic","assistant","azure-openai","claude","claude-code","codex","cursor","devora","gemini","mcp","mcp-server","model-context-protocol","openai","perplexity","prompt","remote","sse","stdio","typescript","vscode"],"latest_commit_sha":null,"homepage":"https://devora.no","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Devora-AS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-11T18:58:59.000Z","updated_at":"2025-10-12T14:36:08.000Z","dependencies_parsed_at":"2025-10-13T07:54:25.599Z","dependency_job_id":"e8c406c6-f4c5-49cd-b0a4-c4869305c2ba","html_url":"https://github.com/Devora-AS/devora-prompt-assistant-mcp","commit_stats":null,"previous_names":["devora-as/devora-prompt-assistant-mcp"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Devora-AS/devora-prompt-assistant-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devora-AS%2Fdevora-prompt-assistant-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devora-AS%2Fdevora-prompt-assistant-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devora-AS%2Fdevora-prompt-assistant-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devora-AS%2Fdevora-prompt-assistant-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Devora-AS","download_url":"https://codeload.github.com/Devora-AS/devora-prompt-assistant-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devora-AS%2Fdevora-prompt-assistant-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279183261,"owners_count":26121361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-16T02:00:06.019Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","assistant","azure-openai","claude","claude-code","codex","cursor","devora","gemini","mcp","mcp-server","model-context-protocol","openai","perplexity","prompt","remote","sse","stdio","typescript","vscode"],"created_at":"2025-10-14T04:33:06.408Z","updated_at":"2025-10-16T11:24:14.282Z","avatar_url":"https://github.com/Devora-AS.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Devora Prompt Assistant (MCP Server)\n\n[![CI Status](https://github.com/Devora-AS/devora-prompt-assistant-mcp/workflows/CI/badge.svg)](https://github.com/Devora-AS/devora-prompt-assistant-mcp/actions)\n[![NPM Version](https://img.shields.io/npm/v/@devora_no/prompt-assistant-mcp.svg)](https://www.npmjs.com/package/@devora_no/prompt-assistant-mcp)\n[![NPM Downloads](https://img.shields.io/npm/dm/@devora_no/prompt-assistant-mcp.svg)](https://www.npmjs.com/package/@devora_no/prompt-assistant-mcp)\n[![License](https://img.shields.io/npm/l/@devora_no/prompt-assistant-mcp.svg)](https://github.com/Devora-AS/devora-prompt-assistant-mcp/blob/main/LICENSE)\n[![Node Version](https://img.shields.io/node/v/@devora_no/prompt-assistant-mcp.svg)](https://nodejs.org/)\n[![Security Status](https://img.shields.io/badge/Security-Secured%20%26%20Monitored-green)](https://github.com/Devora-AS/devora-prompt-assistant-mcp/security)\n[![Production Ready](https://img.shields.io/badge/Status-Production%20Ready-brightgreen)](https://github.com/Devora-AS/devora-prompt-assistant-mcp)\n\n[![Anthropic](https://img.shields.io/badge/Anthropic-Claude-blue)](https://anthropic.com)\n[![OpenAI](https://img.shields.io/badge/OpenAI-GPT-green)](https://openai.com)\n[![Azure OpenAI](https://img.shields.io/badge/Azure%20OpenAI-GPT-0078d4)](https://azure.microsoft.com/en-us/products/ai-services/openai-service)\n[![Google Gemini](https://img.shields.io/badge/Google-Gemini-orange)](https://ai.google.dev)\n[![Perplexity](https://img.shields.io/badge/Perplexity-Sonar-purple)](https://perplexity.ai)\n\n\u003e **🚀 Production-Ready MCP Server** - Transform raw coding prompts into structured, enhanced prompts using multiple AI providers with enterprise-grade security, monitoring, and reliability.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Quick Start](#quick-start)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Documentation](#documentation)\n- [Security \u0026 Privacy](#security--privacy)\n- [Performance](#performance)\n- [Development](#development)\n- [FAQ](#faq)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Overview\n\nThe **Devora Prompt Assistant** is a production-ready Model Context Protocol (MCP) server that transforms your raw coding prompts into structured, enhanced prompts optimized for AI assistants. Built with enterprise-grade security, comprehensive monitoring, and high reliability following all 14 MCP Server Best Practices.\n\n### What Makes This Special?\n\n- **🎯 Production-Grade**: Implements all 14 MCP Server Best Practices for enterprise use\n- **🔒 Security First**: Defense-in-depth security with rate limiting, circuit breakers, and input sanitization\n- **📊 Full Observability**: Comprehensive metrics, tracing, and structured logging\n- **⚡ High Performance**: \u003e100 req/s (stdio), \u003e500 req/s (HTTP) with intelligent caching\n- **🛡️ Resilient**: Circuit breaker protection, graceful degradation, and 99.9% uptime\n- **🔧 Multi-Provider**: Support for 5 AI providers with automatic failover\n\n## Key Features\n\n### 🧠 **Intelligent Prompt Enhancement**\n- **Use Case Auto-Detection**: Automatically detects debugging, refactoring, feature creation, architecture decisions, tech comparison, and content design\n- **Framework Detection**: Detects your tech stack (React, Vue, Angular, Node.js, Python, PHP, etc.) and adjusts suggestions\n- **Smart Question Generation**: Generates clarifying questions when prompts are vague or incomplete\n- **Structured Templates**: Enforces consistent markdown sections with use-case-specific scaffolds\n\n### 🔍 **Intelligent Context Management**\n- **Git Integration**: Automatically detects git repos and uses `git diff` for changed files\n- **Smart Filtering**: Honors `.gitignore` patterns and excludes common build directories\n- **Multiple Strategies**: `changed`, `paths`, and `related` collection strategies\n- **Intelligent Caching**: LRU cache with 10-minute TTL for fast repeat requests\n\n### 🔒 **Enterprise Security**\n- **Defense in Depth**: 6-layer security model with network isolation, authentication, authorization, validation, sanitization, and rate limiting\n- **Circuit Breaker**: Prevents cascade failures with automatic recovery\n- **Input/Output Sanitization**: Protects against injection attacks and data leaks\n- **Secret Redaction**: API keys and tokens automatically redacted from logs\n\n### 📊 **Production Monitoring**\n- **Comprehensive Metrics**: Track throughput, latency, error rate, cache hit rate, and memory usage\n- **Distributed Tracing**: Full request lifecycle tracking with trace ID propagation\n- **Structured Logging**: JSON logs with rotation, separate error/audit files\n- **Health Checks**: `/health`, `/ready`, and `/metrics` endpoints\n\n### ⚡ **High Performance**\n- **Connection Pooling**: Reuse HTTP connections for LLM providers\n- **Intelligent Caching**: 15-minute TTL with size-based eviction\n- **Memory Guards**: Automatic cache clearing at 90% memory usage\n- **Batch Operations**: Optimized file reads and context collection\n\n## Quick Start\n\n### 🚀 **One-Click Cursor Installation**\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=devora-prompt-assistant\u0026config=eyJlbnYiOnsiVFJBTlNQT1JUIjoic3RkaW8iLCJPUEVOQUlfQVBJX0tFWSI6IiR7T1BFTkFJX0FQSV9LRVl9IiwiQU5USFJPUElDX0FQSV9LRVkiOiIke0FOVEhST1BJQ19BUElfS0VZfSIsIkFaVVJFX09QRU5BSV9BUElfS0VZIjoiJHtBWlVSRV9PUEVOQUlfQVBJX0tFWX0iLCJBWlVSRV9PUEVOQUlfRU5EUE9JTlQiOiIke0FaVVJFX09QRU5BSV9FTkRQT0lOVH0iLCJBWlVSRV9PUEVOQUlfREVQTE9ZTUVOVCI6IiR7QVpVUkVfT1BFTkFJX0RFUExPWU1FTlR9IiwiR0VNSU5JX0FQSV9LRVkiOiIke0dFTUlOSV9BUElfS0VZfSIsIlBFUlBMRVhJVFlfQVBJX0tFWSI6IiR7UEVSUExFWElUWV9BUElfS0VZfSJ9LCJjb21tYW5kIjoibnB4IC15IEBkZXZvcmFfbm8vcHJvbXB0LWFzc2lzdGFudC1tY3AifQ%3D%3D)\n\n**Click the button above** to automatically add this MCP server to Cursor.\n\n\u003e **⚠️ Important**: At least one AI provider API key is required. The server will auto-detect which providers are available.\n\u003e \n\u003e **🧪 Testing**: Set `TEST_MODE=true` to run without API keys for testing purposes.\n\n### 📋 **Manual Installation**\n\nAdd this to your Cursor MCP settings (`~/.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"devora-prompt-assistant\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@devora_no/prompt-assistant-mcp\"],\n      \"env\": {\n        \"TRANSPORT\": \"stdio\",\n        \"OPENAI_API_KEY\": \"your-openai-key-here\",\n        \"ANTHROPIC_API_KEY\": \"your-anthropic-key-here\"\n      }\n    }\n  }\n}\n```\n\n**Set your API keys** (at least one required):\n```bash\nexport OPENAI_API_KEY=\"your-openai-key\"\nexport ANTHROPIC_API_KEY=\"your-anthropic-key\"\n# ... or any other provider\n```\n\n**Restart Cursor** and you're ready to go!\n\n## Installation\n\n### Prerequisites\n\n- **Node.js**: 20+ (recommended: latest LTS)\n- **Package Manager**: pnpm (recommended), npm, or yarn\n- **AI Provider**: At least one API key from supported providers\n\n### Installation Methods\n\n#### Option 1: NPM (Recommended)\n```bash\n# One-time use\nnpx @devora_no/prompt-assistant-mcp\n\n# Global installation\nnpm install -g @devora_no/prompt-assistant-mcp\ndevora-prompt-assistant\n\n# Alias\nnpx dpa\n```\n\n#### Option 2: Development Setup\n```bash\n# Clone repository\ngit clone https://github.com/Devora-AS/devora-prompt-assistant-mcp.git\ncd devora-prompt-assistant-mcp\n\n# Install dependencies\npnpm install\n\n# Copy environment template\ncp .env.example .env\n\n# Edit with your API keys\nnano .env\n```\n\n#### Option 3: Docker\n```bash\n# Run with Docker\ndocker run -p 8000:8000 \\\n  -e OPENAI_API_KEY=your_key_here \\\n  -e AUTH_BEARER_TOKENS=your_token_here \\\n  ghcr.io/devora-as/devora-prompt-assistant-mcp\n```\n\n## Inspector (stdio) Quick Start\n\n### 🔍 **Testing with MCP Inspector**\n\nFor development and debugging, use MCP Inspector with stdio transport:\n\n1. **Build the project**:\n   ```bash\n   pnpm install \u0026\u0026 pnpm build\n   ```\n\n2. **Choose your configuration**:\n   - **Published package**: Load `examples/inspector-stdio.json`\n   - **Local development**: Load `examples/inspector-stdio-local.json`\n\n3. **Test the tools**:\n   - Verify `collect_context` and `enhance_prompt` are listed\n   - Run test scenarios from `docs/inspector-playbook.md`\n\n### 🐛 **Debug Mode**\n\nEnable detailed logging by setting `CONTEXT_DEBUG=1` in your environment:\n\n```json\n{\n  \"env\": {\n    \"CONTEXT_DEBUG\": \"1\",\n    \"LOG_LEVEL\": \"debug\"\n  }\n}\n```\n\nThis provides comprehensive trace information for debugging file collection, git integration, and performance.\n\n## Usage\n\n### 🎯 **Core Workflow**\n\n1. **Collect Context** (optional but recommended):\n   ```json\n   {\n     \"strategy\": \"changed\",\n     \"maxKB\": 32,\n     \"maxFiles\": 20,\n     \"extensions\": [\"ts\", \"tsx\", \"js\", \"jsx\"]\n   }\n   ```\n\n2. **Enhance Prompt**:\n   ```json\n   {\n     \"task\": \"Refactor this React component to use TypeScript\",\n     \"context\": \"[context from collect_context]\",\n     \"audience\": \"cursor\",\n     \"style\": \"detailed\"\n   }\n   ```\n\n### 🛠️ **Available Tools**\n\n#### `enhance_prompt` - Prompt Enhancement\nTransforms raw coding prompts into structured, enhanced prompts with use-case detection and smart question generation.\n\n**Parameters:**\n- `task` (string, required): The coding task to enhance\n- `context` (string, optional): Additional context from workspace\n- `audience` (string, optional): Target audience (cursor, claude, copilot, general)\n- `style` (string, optional): Response style (concise, detailed)\n- `constraints` (array, optional): Specific constraints\n- `provider` (string, optional): AI provider to use\n- `temperature` (number, optional): Generation temperature (0-2)\n- `maxTokens` (number, optional): Maximum tokens to generate\n\n#### `collect_context` - Workspace Context Collection\nIntelligently collects relevant files and context from the workspace using git awareness and smart filtering.\n\n**Parameters:**\n- `strategy` (string, optional): Collection strategy (changed, paths, related)\n- `maxKB` (number, optional): Maximum total size in KB\n- `maxFiles` (number, optional): Maximum number of files\n- `include` (array, optional): Glob patterns to include\n- `exclude` (array, optional): Glob patterns to exclude\n- `useGit` (boolean, optional): Enable git integration\n- `extensions` (array, optional): File extensions to include\n\n### 🔧 **LLM Enhancement Modes**\n\n- **`review`** (default): Minor improvements, structure validation\n- **`refine`**: Comprehensive content enhancement\n- **`off`**: Deterministic scaffold only, no LLM calls\n\n### 🌐 **Provider Support**\n\n| Provider | Default Model | Temperature | Max Tokens | Notes |\n|----------|--------------|-------------|------------|-------|\n| Anthropic | claude-3-5-sonnet-latest | ✓ | maxTokens | - |\n| OpenAI | o3-mini | ✓ | maxTokens | Chat Completions |\n| Azure OpenAI | gpt-4o-mini | ✓ | maxTokens | Deployment required |\n| Gemini | gemini-2.0-flash | ✓ | maxOutputTokens | Different param name |\n| Perplexity | sonar | ✓ | maxTokens | - |\n\n## Documentation\n\n### 📚 **Complete Documentation**\n\n- **[Tutorial](docs/tutorial.md)** - Step-by-step walkthrough for new users\n- **[Configuration](docs/configuration.md)** - Complete setup and configuration guide\n- **[Commands](docs/commands.md)** - Detailed tool reference and API documentation\n- **[Best Practices](docs/best-practices.md)** - Optimization tips and common patterns\n- **[Core Functionality](docs/core-functionality.md)** - Technical deep dive\n\n### 🎯 **Use Case Examples**\n\n- **[Debugging](docs/examples/debugging.md)** - Debugging prompts and strategies\n- **[Refactoring](docs/examples/refactoring.md)** - Code refactoring patterns\n- **[Feature Creation](docs/examples/feature-creation.md)** - Feature development workflows\n- **[Architectural Decisions](docs/examples/architectural-decisions.md)** - ADR and design decisions\n- **[Tech Comparison](docs/examples/tech-comparison.md)** - Technology evaluation\n- **[Content \u0026 Design](docs/examples/content-design.md)** - Documentation and specifications\n\n## Security \u0026 Privacy\n\n### 🔒 **Security Features**\n\n- **Defense in Depth**: 6-layer security model\n- **Rate Limiting**: Token bucket algorithm per-client\n- **Circuit Breaker**: Prevents cascade failures\n- **Input/Output Sanitization**: Protection against injection attacks\n- **Secret Redaction**: API keys automatically redacted from logs\n- **Bearer Token Authentication**: Secure HTTP transport\n\n### 🛡️ **Privacy Protection**\n\n- **Local First**: All processing happens locally in stdio mode\n- **No Data Storage**: No code or prompts stored or transmitted\n- **Secret Redaction**: Sensitive data automatically redacted\n- **Context Collection**: Optional workspace scanning with user control\n\n## Performance\n\n### 📊 **Performance Metrics**\n\n- **Throughput**: \u003e100 req/s (stdio), \u003e500 req/s (HTTP)\n- **Latency P95**: \u003c100ms (deterministic), \u003c2s (with LLM)\n- **Error Rate**: \u003c0.1% under normal load\n- **Memory**: \u003c512MB per instance with auto-clearing\n- **Cache Hit Rate**: \u003e70% for repeated queries\n- **Uptime**: 99.9% with circuit breaker protection\n\n### ⚡ **Optimization Features**\n\n- **Connection Pooling**: Reuse HTTP connections\n- **Intelligent Caching**: 15-minute TTL with LRU eviction\n- **Memory Guards**: Automatic cache clearing at 90% usage\n- **Batch Operations**: Optimized file reads and context collection\n\n## Development\n\n### 🏗️ **Project Structure**\n\n```\nsrc/\n├── core/            # Core utilities (security, monitoring, caching)\n│   ├── security/    # Rate limiting, sanitization, circuit breaker\n│   ├── metrics.ts   # Performance monitoring\n│   ├── tracing.ts   # Distributed tracing\n│   └── fileLogger.ts # Structured logging\n├── config/          # Environment and configuration management\n├── providers/       # AI provider adapters\n├── server/          # MCP server and transports\n├── auth/            # Authentication middleware\n└── index.ts         # CLI entry point\n```\n\n### 🛠️ **Available Scripts**\n\n```bash\n# Development\npnpm dev:stdio       # Run with stdio transport\npnpm dev:http        # Run with HTTP transport\n\n# Building\npnpm build           # Build TypeScript to dist/\npnpm prepare         # Build and set executable bit\n\n# Testing\npnpm test            # Run unit tests\npnpm test:watch      # Run tests in watch mode\npnpm test:coverage   # Run with coverage\n\n# Code Quality\npnpm lint            # Run ESLint\npnpm lint:fix        # Fix ESLint issues\npnpm format          # Format with Prettier\n```\n\n### 🧪 **Testing**\n\n- **Unit Tests**: \u003e80% coverage\n- **Integration Tests**: All tool workflows\n- **Chaos Tests**: Resilience under failure conditions\n- **Performance Tests**: KPI benchmarking\n\n## 🔧 Troubleshooting\n\n### Quick Fixes\n\n**Server won't start?**\n- Set at least one API key or use `TEST_MODE=true`\n- Check your configuration in `~/.cursor/mcp.json`\n\n**Git errors in collect_context?**\n- Use `strategy: \"paths\"` instead of `\"changed\"`\n- Or initialize a git repository\n\n**Connection issues?**\n- Verify the server is running\n- Check for port conflicts\n- Ensure proper MCP configuration\n\n### Test Mode\n\nRun without API keys for testing:\n\n```bash\n# Test mode (no API keys needed)\nTEST_MODE=true npx @devora_no/prompt-assistant-mcp\n\n# Or in MCP config\n{\n  \"env\": {\n    \"TEST_MODE\": \"true\"\n  }\n}\n```\n\n### Health Check\n\nCheck server status and configuration:\n\n```bash\nnpx @modelcontextprotocol/inspector --cli npx -y @devora_no/prompt-assistant-mcp --method tools/call --tool-name health_check\n```\n\n### Debug Mode\n\nEnable detailed logging:\n\n```bash\nCONTEXT_DEBUG=1 LOG_LEVEL=debug npx @devora_no/prompt-assistant-mcp\n```\n\n### Common Issues\n\n| Problem | Solution |\n|---------|----------|\n| \"No providers configured\" | Set API key or `TEST_MODE=true` |\n| \"No git history detected\" | Use `strategy: \"paths\"` |\n| \"Connection closed\" | Restart server, check logs |\n| Slow responses | Check API limits, enable caching |\n\n📖 **Full troubleshooting guide**: [docs/troubleshooting.md](docs/troubleshooting.md)\n\n## FAQ\n\n### General Questions\n\n**Q: What is MCP?**\nA: The Model Context Protocol (MCP) is a standard for connecting AI assistants to data sources and tools. This server implements the MCP specification.\n\n**Q: Which AI providers are supported?**\nA: Anthropic Claude, OpenAI, Azure OpenAI, Google Gemini, and Perplexity. At least one API key is required.\n\n**Q: Is this production-ready?**\nA: Yes! This implements all 14 MCP Server Best Practices with enterprise-grade security, monitoring, and reliability.\n\n### Installation and Setup\n\n**Q: How do I install this in Cursor?**\nA: Use the one-click installation button above, or manually add the configuration to your `~/.cursor/mcp.json` file.\n\n**Q: Do I need all provider API keys?**\nA: No, you only need at least one. The server will auto-detect which providers are available.\n\n**Q: What's the difference between stdio and HTTP transport?**\nA: Stdio is for local development (recommended), HTTP is for remote access (experimental in v0.2.1).\n\n### API and Integration\n\n**Q: How do I use the tools?**\nA: The tools are automatically available in Cursor. Use `collect_context` to gather workspace files, then `enhance_prompt` to improve your prompts.\n\n**Q: Can I use this with other MCP clients?**\nA: Yes, this implements the standard MCP protocol and works with any MCP-compatible client.\n\n**Q: What are the input limits?**\nA: Total input: 64KB, Task: 32KB, Context: 16KB. These limits ensure optimal performance.\n\n### Security\n\n**Q: Is my code safe?**\nA: Yes, in stdio mode all processing happens locally. No code or prompts are stored or transmitted to third parties.\n\n**Q: Are API keys secure?**\nA: Yes, API keys are never logged and are automatically redacted from error messages.\n\n**Q: What about rate limiting?**\nA: The server implements token bucket rate limiting per-client to prevent abuse.\n\n### Troubleshooting\n\n**Q: \"No tools, prompts, or resources\" error?**\nA: Check your MCP configuration, ensure API keys are set, and restart Cursor.\n\n**Q: \"No providers configured\" error?**\nA: Set at least one provider API key in your environment variables.\n\n**Q: How do I enable debug logging?**\nA: Set `LOG_LEVEL=debug` in your environment variables.\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### How to Contribute\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Run linting and tests\n6. Submit a pull request\n\n### Reporting Issues\n\n- **Bugs**: [GitHub Issues](https://github.com/Devora-AS/devora-prompt-assistant-mcp/issues)\n- **Security**: [Security Policy](https://github.com/Devora-AS/devora-prompt-assistant-mcp/security)\n- **Discussions**: [GitHub Discussions](https://github.com/Devora-AS/devora-prompt-assistant-mcp/discussions)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n**Last Updated**: January 15, 2025  \n**Version**: 0.2.1  \n**Status**: Production Ready  \n**Security Status**: ✅ Secured \u0026 Monitored  \n**Maintained by**: Devora\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Developed by [Devora](https://devora.no/) ☔️**\n\n_Brave • Innovative • Responsible • Creative • Different_\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevora-as%2Fdevora-prompt-assistant-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevora-as%2Fdevora-prompt-assistant-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevora-as%2Fdevora-prompt-assistant-mcp/lists"}