Source: https://seerepo.com/r/awslabs/mcp/built
Markdown source: https://seerepo.com/r/awslabs/mcp/built.md
Description: mcp is a Python repo built with FastAPI, fastmcp, starlette, and uvicorn. It stores its data in Postgres and MongoDB and reaches it with sqlglot.

# What is mcp built with?

mcp is a Python repo built with FastAPI, fastmcp, starlette, and uvicorn. It stores its data in Postgres and MongoDB, reaches it with sqlglot, signs people in with authlib and bcrypt, uses AI through langdetect, openai, mcp, and bedrock-agentcore, makes its content with python-frontmatter, readabilipy, jinja2, beautifulsoup4, defusedxml, and 6 more, validates its data with openapi-spec-validator, Pydantic, and prance, is tested with pytest-cov, pytest-mock, Pytest, pytest-asyncio, and playwright, deploys with coloredlogs, docker, python-json-logger, loguru, botocore, and 3 more, and uses cassandra-driver, psycopg, pymongo, valkey-glide, pyarrow, and 8 more. It has 970,557 written lines, with 1,401 test files.

Read on November 14, 2026, at commit 5d58a6a.

Repository: https://github.com/awslabs/mcp

## Backend

### Data

- **cassandra-driver**
- **[psycopg](https://seerepo.com/uses/psycopg)**
- **[pymongo](https://seerepo.com/uses/pymongo)**
- **valkey-glide**
- **[Postgres](https://seerepo.com/uses/postgres)**: 6 files · [src/aurora-dsql-mcp-server/awslabs/aurora_dsql_mcp_server/sql_guard.py, line 28](https://github.com/awslabs/mcp/blob/5d58a6adaf89a056d0c14e732593dceb12e633df/src/aurora-dsql-mcp-server/awslabs/aurora_dsql_mcp_server/sql_guard.py#L28)
- **[pyarrow](https://seerepo.com/uses/pyarrow)**: 4 files
- **[MongoDB](https://seerepo.com/uses/mongodb)**: 2 files · [src/documentdb-mcp-server/awslabs/documentdb_mcp_server/connection_tools.py, line 20](https://github.com/awslabs/mcp/blob/5d58a6adaf89a056d0c14e732593dceb12e633df/src/documentdb-mcp-server/awslabs/documentdb_mcp_server/connection_tools.py#L20)
- **pyiceberg**: 2 files
- **asyncmy**: 1 file
- **daft**: 1 file
- **ibm-db**: 1 file
- **[oracledb](https://seerepo.com/uses/oracledb)**: 1 file
- **pika**: 1 file
- **pymssql**: 1 file

### Data access

- **[sqlglot](https://seerepo.com/uses/sqlglot)**: 3 files

### Sign-in

- **[authlib](https://seerepo.com/uses/authlib)**
- **[bcrypt](https://seerepo.com/uses/bcrypt)**: 2 files

### AI

- **[langdetect](https://seerepo.com/uses/langdetect)**
- **[openai](https://seerepo.com/uses/openai)**
- **[mcp](https://seerepo.com/uses/mcp)**: 239 files
- **bedrock-agentcore**: 3 files

### Services

- **InfluxDB**: 1 file · [src/timestream-for-influxdb-mcp-server/awslabs/timestream_for_influxdb_mcp_server/server.py, line 23](https://github.com/awslabs/mcp/blob/5d58a6adaf89a056d0c14e732593dceb12e633df/src/timestream-for-influxdb-mcp-server/awslabs/timestream_for_influxdb_mcp_server/server.py#L23)

## Support

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 110 files
- **[starlette](https://seerepo.com/uses/starlette)**: 2 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 1 file

### Content

- **python-frontmatter**
- **readabilipy**
- **[jinja2](https://seerepo.com/uses/jinja2)**: 3 files
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 2 files
- **[defusedxml](https://seerepo.com/uses/defusedxml)**: 1 file
- **[lxml](https://seerepo.com/uses/lxml)**: 1 file
- **[markdownify](https://seerepo.com/uses/markdownify)**: 1 file
- **[markitdown](https://seerepo.com/uses/markitdown)**: 1 file
- **[pdf2image](https://seerepo.com/uses/pdf2image)**: 1 file
- **[pdfplumber](https://seerepo.com/uses/pdfplumber)**: 1 file
- **[ruamel-yaml](https://seerepo.com/uses/ruamel-yaml)**: 1 file

### Validation

- **openapi-spec-validator**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 287 files
- **prance**: 1 file

### Testing

- **pytest-cov**
- **pytest-mock**
- **Pytest**: 983 files
- **pytest-asyncio**: 9 files
- **playwright**: 6 files

### Deploy

- **[coloredlogs](https://seerepo.com/uses/coloredlogs)**
- **[docker](https://seerepo.com/uses/docker)**
- **[python-json-logger](https://seerepo.com/uses/python-json-logger)**
- **[loguru](https://seerepo.com/uses/loguru)**: 298 files
- **[botocore](https://seerepo.com/uses/botocore)**: 185 files
- **[boto3](https://seerepo.com/uses/boto3)**: 94 files
- **[kubernetes](https://seerepo.com/uses/kubernetes)**: 2 files
- **[psutil](https://seerepo.com/uses/psutil)**: 1 file

### Tools

- **boto3-stubs**
- **cfn-lint**
- **pglast**
- **pyright**
- **Ruff**
- **Setuptools**
- **awscli**: 5 files
- **typing-extensions**: 1 file

### Other

- **",**
- **gevent**
- **idna**
- **importlib-resources**
- **isodate**
- **nest-asyncio**
- **protego**
- **python-dateutil**
- **python-levenshtein**
- **python-multipart**
- **s**
- **httpx**: 24 files
- **requests**: 9 files
- **pyyaml**: 6 files
- **aiorwlock**: 4 files
- **python-dotenv**: 4 files
- **cachetools**: 2 files
- **NumPy**: 2 files
- **sqlparse**: 2 files
- **tomli**: 2 files
- **urllib3**: 2 files
- **filelock**: 1 file
- **pandas**: 1 file
- **Polars**: 1 file
- **statsmodels**: 1 file
- **tenacity**: 1 file
- **thefuzz**: 1 file

## Other repos with a similar stack

- [apache/superset](https://seerepo.com/r/apache/superset/built): pymongo, Postgres, pyarrow, MongoDB, oracledb, pymssql, fastmcp, starlette, uvicorn, sqlglot, authlib, bcrypt, MCP, jinja2, beautifulsoup4, defusedxml, Pydantic, docker, python-json-logger, botocore, boto3, psutil · [Compare](https://seerepo.com/compare/apache/superset/vs/awslabs/mcp)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): psycopg, pymongo, pyarrow, pyiceberg, ibm-db, oracledb, starlette, OpenAI, MCP, bedrock-agentcore, jinja2, beautifulsoup4, defusedxml, lxml, markdownify, markitdown, pdf2image, pdfplumber, Pydantic, python-json-logger, boto3, psutil · [Compare](https://seerepo.com/compare/awslabs/mcp/vs/run-llama/llama_index)
- [ray-project/ray](https://seerepo.com/r/ray-project/ray/built): pymongo, pyarrow, MongoDB, pyiceberg, daft, FastAPI, starlette, uvicorn, sqlglot, jinja2, beautifulsoup4, defusedxml, lxml, ruamel-yaml, openapi-spec-validator, Pydantic, docker, python-json-logger, botocore, boto3, kubernetes, psutil · [Compare](https://seerepo.com/compare/awslabs/mcp/vs/ray-project/ray)
- [apache/airflow](https://seerepo.com/r/apache/airflow/built): cassandra-driver, psycopg, pymongo, pyarrow, pyiceberg, ibm-db, oracledb, pymssql, FastAPI, uvicorn, sqlglot, jinja2, beautifulsoup4, Pydantic, docker, boto3, kubernetes, psutil · [Compare](https://seerepo.com/compare/apache/airflow/vs/awslabs/mcp)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): pyarrow, pyiceberg, ibm-db, oracledb, FastAPI, fastmcp, starlette, uvicorn, bcrypt, OpenAI, MCP, defusedxml, markitdown, Pydantic, loguru, boto3, psutil · [Compare](https://seerepo.com/compare/awslabs/mcp/vs/langflow-ai/langflow)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): Postgres, oracledb, FastAPI, fastmcp, starlette, uvicorn, bcrypt, langdetect, OpenAI, MCP, jinja2, beautifulsoup4, lxml, pdfplumber, Pydantic, loguru, kubernetes · [Compare](https://seerepo.com/compare/awslabs/mcp/vs/datawhalechina/hello-agents)

## Frequently asked questions

### What language is mcp written in?

mcp is written in Python, with 970,557 written lines.

### What framework does mcp use?

mcp is built with FastAPI, fastmcp, starlette, and uvicorn.

### What database does mcp use?

mcp stores its data in Postgres and MongoDB and reaches it with sqlglot.

The proof: [src/aurora-dsql-mcp-server/awslabs/aurora_dsql_mcp_server/sql_guard.py, line 28](https://github.com/awslabs/mcp/blob/5d58a6adaf89a056d0c14e732593dceb12e633df/src/aurora-dsql-mcp-server/awslabs/aurora_dsql_mcp_server/sql_guard.py#L28)

### What does mcp sign people in with?

mcp signs people in with authlib and bcrypt.

### Does mcp use AI?

Yes. mcp uses AI through langdetect, openai, mcp, and bedrock-agentcore.

### What services does mcp use?

mcp uses cassandra-driver, psycopg, pymongo, valkey-glide, pyarrow, pyiceberg, asyncmy, daft, ibm-db, oracledb, pika, pymssql, and InfluxDB.

### Does mcp have tests?

Yes. mcp has 1,401 test files and is tested with pytest-cov, pytest-mock, Pytest, pytest-asyncio, and playwright.

### Which repos have a stack like mcp's?

The ones that share most of its stack: apache/superset, run-llama/llama_index, and ray-project/ray.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
