Best Practices MCP Server
Provides Python and FastAPI coding best practices with searchable guidelines, code review capabilities, and actionable improvement suggestions with examples across general coding, performance, and code quality categories.
README
Best Practices MCP Server
A Model Context Protocol (MCP) server that provides Python coding best practices and guidelines for general coding and API development using FastAPI.
Features
- Search Best Practices: Search by keyword across all categories
- Category Browsing: Explore practices by category (general_coding, fastapi_specific, performance, code_quality)
- Code Examples: Get practical code examples for specific topics
- Code Review: Analyze code against best practices with specific recommendations
- Improvement Suggestions: Get prioritized, actionable improvements with before/after examples
- MCP Resources: Access best practices via URI (e.g.,
bestpractices://fastapi/async_operations) - Pre-built Prompts: Quick access to common tasks like code review and examples
Installation
pip install -r requirements.txt
Configuration
The server supports the following environment variables:
BEST_PRACTICES_FILE: Path to the best practices JSON file (default:data/python_best_practices.json)LOG_LEVEL: Logging level (default:INFO)
Example:
export BEST_PRACTICES_FILE=/path/to/custom_practices.json
export LOG_LEVEL=DEBUG
Running the Server
python bestpractices_mcp_server.py
Usage with Kiro IDE
- Add the server to your MCP configuration (
.kiro/settings/mcp.json):
{
"mcpServers": {
"bestpractices": {
"command": "python",
"args": ["/path/to/bestpractices_mcp_server.py"],
"env": {
"BEST_PRACTICES_FILE": "data/python_best_practices.json"
}
}
}
}
-
Restart Kiro IDE or reconnect the MCP server
-
Use the tools in your AI assistant conversations
Available Tools
search_best_practices
Search for best practices by keyword.
search_best_practices(keyword="async")
get_practice_by_category
Get practices for a specific category or topic.
get_practice_by_category(category="fastapi_specific", topic="pydantic_models")
list_categories
List all available categories.
list_categories()
get_examples_tool
Get code examples for a specific topic.
get_examples_tool(topic="type_hints")
review_code
Review code against best practices.
review_code(code="def test(): pass", context="general")
suggest_improvements
Get improvement suggestions for code.
suggest_improvements(code="def test(): pass", focus_area="type_hints")
Available Resources
Access best practices directly via URI:
bestpractices://general/{topic}- General Python practicesbestpractices://fastapi/{topic}- FastAPI-specific practicesbestpractices://performance/{topic}- Performance optimizationbestpractices://code_quality/{topic}- Code quality practicesbestpractices://all- Complete guide
Available Prompts
review_python_code- Comprehensive Python code reviewreview_fastapi_endpoint- FastAPI-specific code reviewsuggest_code_improvements- Get improvement suggestionsshow_examples- Retrieve examples for a topic
Best Practices Database
The server reads from data/python_best_practices.json which contains:
- general_coding: Naming conventions, type hints, error handling, documentation, code organization
- fastapi_specific: Routes, Pydantic models, dependency injection, async operations, middleware, security
- performance: Caching, database optimization
- code_quality: Linting, logging
The database is read dynamically on each request, so updates are reflected immediately without restarting the server.
Examples
The examples/ directory contains usage examples demonstrating the server's functionality:
- search_example.py - Search for best practices by keyword
- code_review_example.py - Review code against best practices
- resource_access_example.py - Access practices via categories and topics
Run examples:
python examples/search_example.py
python examples/code_review_example.py
python examples/resource_access_example.py
See examples/README.md for detailed documentation.
Development
Running Tests
pytest test_data_manager.py -v
Adding New Best Practices
Edit data/python_best_practices.json and add your practices following the structure:
{
"python_best_practices": {
"category_name": {
"topic_name": {
"description": "Description of the practice",
"examples": {
"example_name": "code example"
}
}
}
}
}
Troubleshooting
Server won't start
- Check that
data/python_best_practices.jsonexists - Verify the JSON file is valid
- Check file permissions
No results from search
- Verify the keyword exists in the database
- Try broader search terms
- Use
list_categories()to see available topics
Tools not appearing in Kiro
- Verify MCP configuration is correct
- Restart Kiro IDE
- Check server logs for errors
License
MIT License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Neon Database
MCP server for interacting with Neon Management API and databases