biome-mcp
Enables LLMs to run Biome formatting, linting, and assist checks on TypeScript/web projects with token-efficient, structured output, plus searchable cached Biome documentation.
README
biome-mcp
A Model Context Protocol (MCP) server for running Biome on TypeScript and web projects with token-efficient output.
Overview
biome-mcp gives LLMs direct access to Biome's formatting, linting, and assist checks without shelling out to the CLI. Diagnostic output is parsed structurally and reduced to compact, grouped results before it reaches the model, so long check runs stay readable and cheap.
The server also caches the Biome CLI, configuration, and JavaScript linter documentation and exposes it as searchable resources.
Features
- biome_check - Run formatting, linting, and assist checks in one pass
- biome_lint - Lint-only diagnostics with an
all/error/warningseverity filter - biome_format - Verify formatting without modifying files
- Structured parsing -
json-prettyoutput avoids fragile parsing of human-readable text - Adaptive aggregation - large result sets include rule/file rollups before flat diagnostics
- changed_only - Check only staged, unstaged, and untracked web files (
*.ts,*.tsx,*.js, ...) - Documentation cache - Searchable, version-aware cache of Biome docs
- Bundled Agent Skill - Install
biome-mcpskill into.agents/skillswith one command
How It Works
biome-mcp implements the Model Context Protocol
to expose Biome through read-only tools. Every check tool returns a
CheckResult with compact output text and the underlying exit_code; it
never writes to source files.
| Tool | What it runs |
|---|---|
biome_check(paths?, changed_only?) |
biome check (format + lint + assist) |
biome_lint(paths?, level?, changed_only?) |
biome lint, filtered by severity |
biome_format(paths?, changed_only?) |
biome check with linter and assist disabled |
search_documentation(query) |
Search the cached Biome docs |
update_cache(force?) |
Refresh the cached docs from biomejs.dev |
Usage
To start the server:
uvx biome-mcp
Or from a checkout:
uv run biome-mcp
Configure an MCP client to launch the server in the project directory to check, e.g. for opencode:
{
"mcp": {
"biome-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["biome-mcp"]
}
}
}
The server checks the project in its working directory. To target another
directory, set BIOME_MCP_PROJECT_DIR.
Biome is invoked through bunx @biomejs/biome by default. Set
BIOME_MCP_COMMAND_PREFIX to use another project-local invocation (see
docs/configuration.md).
Agent Skill
Install the bundled biome skill in a project when the agent client discovers
skills from .agents/skills:
uvx biome-mcp skill install biome --target .
The skill directs agents to the server's read-only tools and the cached documentation resources.
Configuration
Environment variables, all optional:
| Variable | Default | Purpose |
|---|---|---|
BIOME_MCP_LOG_LEVEL |
INFO |
Logging level (stderr) |
BIOME_MCP_PROJECT_DIR |
server working directory | Project directory to check |
BIOME_MCP_COMMAND_PREFIX |
bunx @biomejs/biome |
Invocation for Biome; empty string uses binaries from PATH |
BIOME_MCP_COMMAND_TIMEOUT |
none | Optional per-command timeout in seconds |
BIOME_MCP_CACHE_DIR |
~/.cache/biome-mcp/docs |
Documentation cache location |
Documentation
See the docs for the full picture:
- Architecture - components, request flow, and output processing
- Configuration - environment variables and client setup
- Tools & resources - complete catalog with signatures
- Development - layout, tests, and contributing
Development
This project is built with FastMCP and uv.
uv sync --extra dev
uv run ruff check
uv run ruff format --check
uv run ty check
uv run pytest
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.