README.md•4.08 kB
<div align="center">
<img src="./cairo-grey.png" alt="Cairo Coder MCP Logo" width="300"/>
[](https://www.npmjs.com/package/@kasarlabs/cairo-coder-mcp)
[](https://www.npmjs.com/package/@kasarlabs/cairo-coder-mcp)
[](https://github.com/kasarlabs/cairo-coder-mcp/stargazers)
[](https://opensource.org/licenses/MIT)
</div>
# Cairo Coder MCP Server
A Model Context Protocol (MCP) server for Cairo and Starknet development assistance via the Cairo Coder API.
## Quick Start
### Install via Claude Code
```bash
# Install Cairo Coder MCP
claude mcp add cairo-coder -e CAIRO_CODER_API_KEY=YOUR-API-KEY-HERE -- npx -y @kasarlabs/cairo-coder-mcp
```
**Note**: Replace `YOUR-API-KEY-HERE` with your actual API key from [cairo-coder.com](https://cairo-coder.com)
### Manual Usage
Use this MCP server directly with npx:
```bash
npx -y @kasarlabs/cairo-coder-mcp
```
## Configuration
The server supports two modes of operation:
### Mode 1: Public Cairo Coder API (Default)
Use the official Cairo Coder API with your API key.
**Environment Variables:**
- `CAIRO_CODER_API_KEY`: Your Cairo Coder API key (required)
**MCP Client Setup:**
```json
{
"mcpServers": {
"cairo-coder": {
"command": "npx",
"args": ["-y", "@kasarlabs/cairo-coder-mcp"],
"env": {
"CAIRO_CODER_API_KEY": "your-api-key-here"
}
}
}
}
```
### Mode 2: Local/Custom Endpoint
Use a local or custom Cairo Coder API endpoint (no API key required).
**Environment Variables:**
- `CAIRO_CODER_API_ENDPOINT`: Your local endpoint URL (e.g., "http://localhost:8000")
**MCP Client Setup:**
```json
{
"mcpServers": {
"cairo-coder": {
"command": "npx",
"args": ["-y", "@kasarlabs/cairo-coder-mcp"],
"env": {
"CAIRO_CODER_API_ENDPOINT": "http://localhost:8000"
}
}
}
}
```
> **Note:** When using `CAIRO_CODER_API_ENDPOINT`, the server automatically switches to local mode and no API key is required or used.
## Available Tools
### assist_with_cairo
Get help with Cairo and Starknet development tasks.
**Parameters:**
- `query` (string, required): Your Cairo/Starknet development question
- `context` (string, optional): Additional context or code snippets
**Examples:**
```typescript
// Simple request
{
"query": "Write a simple Cairo contract that implements a counter"
}
// With context
{
"query": "How can I optimize this contract?",
"context": "#[starknet::contract]\nmod Counter {\n // existing code here\n}"
}
```
## What You Can Do
- **Write Cairo code**: Generate smart contracts and Cairo code
- **Refactor code**: Improve and optimize existing code
- **Implement features**: Complete TODOs and implement specific functionality
- **Learn Starknet**: Get contextual information about the Starknet ecosystem
- **Best practices**: Receive advice based on Cairo/Starknet documentation
## Tips for Better Results
- Use specific queries (e.g., "Using OpenZeppelin to build an ERC20" instead of just "ERC20")
- Include relevant code snippets when working with existing code
- Provide necessary context for more accurate responses
## Development
### Prerequisites
- Node.js >= 18
- npm or yarn
### Local Installation
```bash
git clone <repository-url>
cd cairo-coder-mcp
npm install
```
### Available Scripts
```bash
npm run build # Build the project
npm run dev # Start in development mode
npm start # Start in production mode
```
## License
MIT
## Support
For issues and questions:
- GitHub Issues: [Create an issue](https://github.com/kasarlabs/cairo-coder-mcp/issues)
- MCP Documentation: [Model Context Protocol](https://modelcontextprotocol.io/)
## Contributing
Contributions are welcome! Please check the contribution guidelines before submitting a PR.