peepeepopapapeepeepo/prompt-mcp-server
If you are the rightful owner of prompt-mcp-server 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 Model Context Protocol (MCP) server for Amazon Q Developer CLI is a single-file implementation designed to manage prompt files efficiently.
Prompt MCP Server for Amazon Q
A single-file Model Context Protocol (MCP) server for Amazon Q Developer CLI that manages prompt files (*.md) from local directories.
Features
- š Real-time File Monitoring: Automatically detects file changes and updates prompt list
- š¢ MCP Notifications: Sends notifications to Amazon Q CLI for automatic refresh
- š Prompt Discovery: Lists all
*.md
files from configured directories - š Default Directory:
~/.aws/amazonq/prompts
(created automatically) - šÆ Custom Directories: Override with
PROMPTS_PATH
environment variable (PATH-like format) - š§ Variable Substitution: Supports
{variable}
placeholders in prompts - š Configurable Logging: Production-safe defaults with comprehensive debug mode
- š Cross-Platform: Works on Unix/Linux/macOS (Windows compatible)
- ā” Error Handling: Comprehensive error handling and logging
- š¦ No Dependencies: Pure Python 3.8+ implementation
Installation & Usage
Quick Start with uvx (Recommended)
# Install and run directly (after publishing to PyPI)
uvx prompt-mcp-server
# Or install from local build
pyproject-build
uvx --from ./dist/prompt_mcp_server-2.0.3-py3-none-any.whl prompt-mcp-server
Direct Usage
# Run the server directly
python3 mcp_server/prompt_mcp_server.py
# With custom prompt directories
PROMPTS_PATH="./my-prompts:~/.aws/amazonq/prompts" python3 mcp_server/prompt_mcp_server.py
Amazon Q Integration
# The workspace is configured to use uvx with the built package
q mcp list # Verify configuration (should show: prompt-server uvx)
q chat # Start Amazon Q CLI
/prompts # List available prompts
@debug_code # Use a prompt
Configuration files:
.amazonq/mcp.json
- Uses local development pathtests/.amazonq/mcp.json
- Uses local built packagetests/.amazonq/mcp-published.json
- For published package (copy tomcp.json
after publishing)
Building and Testing
# Build package
pyproject-build
# Test with uvx
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize"}' | uvx --from ./dist/prompt_mcp_server-2.0.0-py3-none-any.whl prompt-mcp-server
Configuration
Environment Variables
PROMPTS_PATH
: Colon-separated list of directories (Unix) or semicolon-separated (Windows)- Default:
~/.aws/amazonq/prompts
Workspace Configuration
The .amazonq/mcp.json
file configures Amazon Q to use this server:
Development Configuration (Local)
{
"mcpServers": {
"prompt-server": {
"command": "python3",
"args": ["mcp_server/prompt_mcp_server.py"],
"timeout": 10000
}
}
}
Production Configuration (PyPI)
{
"mcpServers": {
"prompt-server": {
"command": "uvx",
"args": ["prompt-mcp-server@latest"],
"disabled": false,
"autoApprove": []
}
}
}
Environment Variables
PROMPTS_PATH
- Purpose: Specify custom directories to search for prompt files
- Format: Colon-separated list of directories (Unix/Linux/macOS) or semicolon-separated (Windows)
- Default:
~/.aws/amazonq/prompts
- Example:
export PROMPTS_PATH="/path/to/prompts1:/path/to/prompts2"
MCP_LOG_LEVEL
- Purpose: Set the logging level for the MCP server
- Values:
DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
- Default:
WARNING
(production level - only warnings and errors) - Example:
export MCP_LOG_LEVEL=INFO
MCP_DEBUG_LOGGING
- Purpose: Enable comprehensive debug logging with detailed request/response tracing
- Values:
1
,true
,yes
,on
(case-insensitive) - Default: Disabled
- When enabled:
- Forces
INFO
level logging regardless ofMCP_LOG_LEVEL
- Creates debug log file for easy monitoring
- Logs all MCP requests and responses with full JSON details
- Logs file monitoring activity and cache operations
- Color-coded log messages with emojis for easy identification
- Forces
- Example:
export MCP_DEBUG_LOGGING=1 # Then monitor logs with: tail -f /tmp/mcp_server_debug.log
MCP_LOG_FILE
- Purpose: Set custom path for the debug log file
- Default:
/tmp/mcp_server_debug.log
- Only used when:
MCP_DEBUG_LOGGING
is enabled - Example:
export MCP_DEBUG_LOGGING=1 export MCP_LOG_FILE=/path/to/custom/mcp_debug.log # Then monitor logs with: tail -f /path/to/custom/mcp_debug.log
Debug Logging Usage
To enable debug logging for troubleshooting:
# Enable debug logging with default log file
export MCP_DEBUG_LOGGING=1
# Or enable with custom log file location
export MCP_DEBUG_LOGGING=1
export MCP_LOG_FILE=/path/to/custom/debug.log
# Start Amazon Q CLI
q chat
# In another terminal, monitor detailed logs
tail -f /tmp/mcp_server_debug.log
# Or if using custom log file:
tail -f /path/to/custom/debug.log
# Test file changes
echo "# Test" > ~/.aws/amazonq/prompts/test.md
rm ~/.aws/amazonq/prompts/test.md
The debug logs will show:
- š„ Raw requests received from Amazon Q CLI
- šµ Parsed incoming requests with details
- š¢ Outgoing responses with full content
- š¤ Raw responses sent to Amazon Q CLI
- š¢ MCP notifications sent (e.g., prompts list changed)
- File monitoring activity and cache operations
Testing
The project includes comprehensive unit and functional tests:
Run All Tests
# Run both unit and functional tests
python3 tests/run_all_tests.py
# Run only unit tests
python3 tests/run_all_tests.py --unit-only
# Run only functional tests
python3 tests/run_all_tests.py --functional-only
Individual Test Suites
# Unit tests (31 tests)
python3 tests/test_prompt_mcp_server.py
# Functional tests (14 tests)
python3 tests/test_functional.py
# UVX integration tests (8 tests)
python3 tests/test_uvx_integration.py
Test Results
- Current Status: ā All 53 tests passing (100% success rate)
- Detailed Results: See
tests/results/
directory for comprehensive reports - Performance: Complete test suite runs in ~10.5 seconds
Test Coverage
- Unit Tests: 31 tests covering all server components
- Functional Tests: 14 end-to-end integration tests
- UVX Integration: 8 tests for package execution scenarios
- Total Coverage: 53 comprehensive tests
Creating Prompts
Simple Prompt
Create ~/.aws/amazonq/prompts/debug_code.md
:
# Debug Code Issues
Help me debug code by identifying issues and suggesting fixes.
Parameterized Prompt
Create ~/.aws/amazonq/prompts/create_function.md
:
# Create {language} Function
Create a {language} function named {function_name} that {description}.
Requirements:
- Follow {language} best practices
- Include error handling
- Add comprehensive tests
Usage Examples
List Available Prompts
echo '{"jsonrpc": "2.0", "id": 1, "method": "prompts/list"}' | python3 mcp_server/prompt_mcp_server.py
Get a Prompt with Variables
echo '{"jsonrpc": "2.0", "id": 2, "method": "prompts/get", "params": {"name": "create_function", "arguments": {"language": "Python", "function_name": "calculate", "description": "adds two numbers"}}}' | python3 mcp_server/prompt_mcp_server.py
Requirements
- Python 3.6+
- No external dependencies
- Cross-platform support
Error Handling
The server includes comprehensive error handling:
- File permission validation
- File size limits (1MB max)
- Unicode encoding support (UTF-8 with latin-1 fallback)
- Directory access validation
- Graceful fallback to default directories
- Detailed logging to stderr
Testing
All core features have been tested:
- ā MCP protocol compliance (initialize, prompts/list, prompts/get)
- ā Prompt discovery and variable extraction
- ā PROMPTS_PATH environment variable support
- ā Cross-platform path handling
- ā Error handling and edge cases
- ā Amazon Q CLI integration
Project Structure
mcp-prompts-local/
āāā mcp_server/ # Main package
ā āāā __init__.py # Package initialization
ā āāā prompt_mcp_server.py # MCP server implementation
āāā tools/ # Development tools
ā āāā publish.py # Automated publishing script
ā āāā README.md # Tools documentation
āāā tests/ # Test suite
ā āāā test_prompt_mcp_server.py # Unit tests (31 tests)
ā āāā test_functional.py # Functional tests (14 tests)
ā āāā test_uvx_integration.py # UVX integration tests (8 tests)
ā āāā results/ # Test execution results
ā ā āāā FULL_TEST_RESULTS.md # Initial test results
ā ā āāā FINAL_TEST_RESULTS.md # Final test results (100% success)
ā ā āāā README.md # Test results documentation
ā āāā .amazonq/ # Test configurations
āāā .amazonq/ # Workspace configuration
ā āāā mcp.json # Development MCP config
āāā dist/ # Built packages
āāā pyproject.toml # Package configuration
āāā README.md # This file
āāā LICENSE # MIT license
Architecture
This is a single-file implementation that:
- Reads JSON-RPC requests from stdin
- Scans configured directories for
*.md
files - Extracts variables using regex (
{variable}
pattern) - Substitutes variables in prompt content
- Returns responses via stdout
- Logs to stderr
Version History
For detailed version information, release notes, and changelog, see .
For more information about the Model Context Protocol, see the MCP specification.