AWS Labs Git Repo Research MCP Server

raw JSON →
1.0.15 verified Fri May 01 auth: no python

An AWS Labs Model Context Protocol (MCP) server for researching git repositories. Version 1.0.15, requires Python >=3.10. Released under Apache 2.0, maintained by AWS Labs.

pip install awslabs-git-repo-research-mcp-server
error ModuleNotFoundError: No module named 'mcp'
cause Installed the wrong package or the package did not install dependencies.
fix
Ensure you have installed 'awslabs-git-repo-research-mcp-server' and its dependencies: pip install awslabs-git-repo-research-mcp-server
error ImportError: cannot import name 'FastMCP' from 'mcp.server'
cause Have an older version of the 'mcp' package that predates FastMCP.
fix
Upgrade the mcp package: pip install --upgrade mcp (or the umbrella package).
error TypeError: Object of type Response is not JSON serializable
cause Returning non-serializable objects from a tool function.
fix
Ensure tool functions return strings, dicts, or other JSON-serializable types. Use json.dumps() for complex data.
gotcha The package name on PyPI (awslabs-git-repo-research-mcp-server) differs from the import path: you import from 'mcp', not the package name.
fix Import from mcp.server.fastmcp or mcp.server as documented.
breaking FastMCP replaced the lower-level 'Server' class as the recommended entry point in version 1.0.0. Code using 'Server' directly may need updates.
fix Migrate to FastMCP: from mcp.server.fastmcp import FastMCP; replace Server(...) with FastMCP(...).
deprecated Older MCP versions used 'mcp' as a CLI. The library now ships a separate CLI entry point; check documentation for exact usage.
fix Update to latest version and follow the new CLI patterns (e.g., 'mcp run server.py').

Minimal MCP server using FastMCP. Requires the mcp package (>=1.0.0).

from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("GitRepoResearch")

@mcp.tool()
def research_repo(url: str) -> str:
    """Research a git repository and return structured information."""
    return f"Researched {url}"

if __name__ == "__main__":
    mcp.run()