caniuse-mcp
An MCP server that provides browser compatibility data and web API support information using caniuse.com, MDN BCD, and Web Features, enabling developers to check feature support across browsers and against browserslist configurations.
README
📊 Caniuse MCP
A Model Context Protocol (MCP) server providing browser compatibility data and web API support information using the caniuse.com database.
Features
- Multiple Data Sources: Combines data from CanIUse, MDN BCD, and Web Features for comprehensive compatibility information
- Browser Compatibility Data: Get detailed compatibility information for web features across all major browsers
- Baseline Status: See Web Features baseline status (high/low) for modern browser support
- Feature Search: Look up web features by name using comprehensive databases
- Always Up-to-Date: Queries the latest compatibility data in real-time
- MCP Compatible: Works seamlessly with any MCP-compatible client
- Smart Feature Sampling: Provides accurate compatibility data through intelligent sampling of feature variants and edge cases
[!NOTE] However, some MCP clients may not support sampling features, which could affect the comprehensiveness of the compatibility information returned.
Installation
npm install -g caniuse-mcp
Or with pnpm:
pnpm add -g caniuse-mcp
Usage
As an MCP Server
Add to your MCP client configuration.
Vscode with copilot:
{
"servers": {
"caniuse": {
"command": "npx",
"args": ["-y", "caniuse-mcp"]
}
}
}
Claude desktop:
{
"mcpServers": {
"caniuse": {
"command": "npx",
"args": ["-y", "caniuse-mcp"]
}
}
}
Available Tools
1. caniuse_feature
Look up browser compatibility for web features.
Parameters:
feature(string): The feature to look up (e.g., "flexbox", "grid", "promises", "fetch")
Example:
Please tell me the scope of the "promises" browser support.
Response:
Returns detailed compatibility information from multiple sources:
CanIUse Data:
- Support status for major browsers: Chrome, Firefox, Safari, Edge, iOS Safari, Chrome Android
- Version-specific support information
- Partial support details
- Notes about implementation differences
- Polyfill availability
Web Features Data:
- Baseline status (high/low/false) indicating cross-browser support maturity
- Related MDN documentation IDs
- Specification links
- Modern browser support information
MDN Browser Compatibility Data:
- Detailed API/feature support
- Experimental and deprecated status
- Standard track information
2. browserslist_compatibility_check
Check web feature compatibility against your browserslist configuration.
Parameters:
feature(string): The feature to check compatibility forbrowserslistQuery(string, optional): Browserslist query string (e.g., "> 1%, last 2 versions")configPath(string, optional): Path to .browserslistrc fileprojectPath(string, optional): Path to project root with package.json or .browserslistrc
Example:
Check if array.at is compatible with my browserslist config: ">= 1%, not dead, Chrome >= 106, ios_saf >= 16"
Response:
Returns compatibility results filtered by your target browsers:
- Target browser list from your browserslist query
- Feature support status for each target browser version
- Identifies compatibility issues with specific browser versions
- Combines data from CanIUse, MDN BCD, and Web Features
Use Cases:
- Validate new web features against your project's browser support policy
- Check if a feature works in your target browsers before using it
- Analyze compatibility with company-specific browserslist configurations
- Ensure features work in specific browser version ranges
3. list_tools
List all available tools and their descriptions.
Example Response:
# Available Tools in caniuse-mcp
## caniuse-feature
Look up the compatibility of web features across different browsers using data from caniuse.com.
## browserslist-compatibility-check
Check web feature compatibility against your browserslist configuration.
## list-tools
List all available tools and their descriptions
Supported Browsers
- Desktop: Chrome, Firefox, Safari, Edge
- Mobile: iOS Safari, Android Chrome, Samsung Internet
- Legacy: Internet Explorer (with polyfill information)
Feature Categories
The server supports compatibility data for:
- CSS Properties & Values
- HTML Elements & Attributes
- JavaScript APIs
- Web APIs (Fetch, WebSockets, etc.)
- ECMAScript Features
- Media & Graphics APIs
- Security Features
- Performance APIs
- And many more...
Development
Prerequisites
- Node.js 20+
- pnpm@10.6.5
Setup
# Clone the repository
git clone https://github.com/yujeongJeon/caniuse-mcp.git
cd caniuse-mcp
# Install dependencies
pnpm install
# Build the project
pnpm build
Scripts
pnpm build- Build the TypeScript projectpnpm lint- Run ESLintpnpm prettier- Check code formattingpnpm fix- Fix linting and formatting issues
Project Structure
src/
├── index.ts # Main server entry point
├── lib/
│ ├── browserslist.ts # Browserslist query parser
│ ├── caniuse-api.ts # Caniuse API client
│ ├── caniuse-db.ts # Data processing utilities
│ ├── compat-utils.ts # Multi-source compatibility data aggregation
│ ├── consts.ts # Constants and configuration
│ ├── mdn.ts # MDN compatibility data
│ └── web-features.ts # Web Features baseline data
└── tools/
├── index.ts # Tools registry
├── registry.ts # Tool registration system
├── browserslist-compat/
│ ├── index.ts # Browserslist compatibility
│ └── schema.ts # Input validation schemas
├── caniuse/
│ ├── index.ts # Multi-source feature
│ └── schema.ts # Input validation schemas
└── list-tools/
└── index.ts # Tools listing functionality
API Reference
Tool: caniuse_feature
Fetches compatibility data for a specified web feature.
Input Schema:
{
feature: string // Feature name to look up
}
Output:
- Comprehensive browser support information
- Version-specific compatibility data
- Implementation notes and caveats
- Polyfill availability information
Tool: browserslist_compatibility_check
Checks web feature compatibility against browserslist configuration.
Input Schema:
{
feature: string // Feature name to check
browserslistQuery?: string // Browserslist query string
configPath?: string // Path to .browserslistrc file
projectPath?: string // Path to project root
}
Output:
- Target browser list from browserslist query
- Feature support status filtered by target browsers
- Compatibility issues with specific browser versions
- Combined data from CanIUse, MDN BCD, and Web Features
Tool: list_tools
Lists all available tools in the MCP server.
Input Schema:
{} // No parameters required
Output:
- Tool names and descriptions
- Usage information
- Available functionality overview
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License
Data Sources
This MCP server combines compatibility data from multiple authoritative sources:
- Caniuse.com - Comprehensive browser support tables for web technologies
- Web Features - Baseline status and cross-browser feature availability
- MDN Browser Compatibility Data - Mozilla's detailed compatibility database
By leveraging these three complementary data sources, the server provides the most complete and accurate browser compatibility information for web developers:
- CanIUse provides detailed version-by-version support history
- Web Features offers baseline status to quickly understand cross-browser maturity
- MDN BCD adds specification details and experimental/deprecated flags
References
- Model Context Protocol for the MCP specification
- FastMCP for the MCP server framework
- MCP Client Feature support matrix
Made with ❤️ by yujeongJeon
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。