Best Practices MCP Server

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.

Category
Visit Server

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

  1. 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"
      }
    }
  }
}
  1. Restart Kiro IDE or reconnect the MCP server

  2. 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 practices
  • bestpractices://fastapi/{topic} - FastAPI-specific practices
  • bestpractices://performance/{topic} - Performance optimization
  • bestpractices://code_quality/{topic} - Code quality practices
  • bestpractices://all - Complete guide

Available Prompts

  • review_python_code - Comprehensive Python code review
  • review_fastapi_endpoint - FastAPI-specific code review
  • suggest_code_improvements - Get improvement suggestions
  • show_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.json exists
  • 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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured