A lightweight Model Context Protocol (MCP) server that enables AI agents (Claude, Cursor, Windsurf) to generate static Pix QR codes via natural-language prompts.
- π§ MCP Tool:
generateStaticPix
- Generate static Pix QR codes for any Pix key (no API required)
- π Production-ready: Comprehensive error handling and logging
- π Type-safe: Full TypeScript implementation with Zod validation
- π± QR Code generation: Automatic QR code creation for Pix payments
- π¦ Zero Dependencies: No external API keys or services required
- π Open & Accessible: Works without any registration or credentials
- β EMV 4.0 Compliant: Follows BACEN PIX standards with proper CRC16-CCITT validation
# Install globally
npm install -g pix-mcp
# Run in MCP mode (for Claude Desktop)
pix-mcp
# Run in HTTP mode (for web services)
MCP_MODE=http pix-mcp
# Start in MCP mode for Claude Desktop integration
pix-mcp
# Start in HTTP mode on port 3000
MCP_MODE=http pix-mcp
curl -X POST http://localhost:3000/tools/call \
-H "Content-Type: application/json" \
-d '{
"name": "generateStaticPix",
"arguments": {
"pixKey": "10891990909",
"amount": 100.50,
"recipientName": "Franco Camelo Aguzzi",
"recipientCity": "Florianopolis"
}
}'
const result = await mcpClient.callTool('generateStaticPix', {
pixKey: '10891990909',
amount: 100.5,
recipientName: 'Franco Camelo Aguzzi',
recipientCity: 'Florianopolis',
});
MCP_MODE=http
NODE_ENV=production
(optional)
# Clone the repository
git clone https://github.com/Regenerating-World/pix-mcp.git
cd pix-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Start the server in HTTP mode
MCP_MODE=http NODE_ENV=production node dist/index.js
MIT
MCP_MODE
: Server mode (stdio
for MCP,http
for HTTP API) - Default:stdio
NODE_ENV
: Environment (development
/production
) - Default:development
PORT
: HTTP port when in HTTP mode - Default:3000
// Add to your Claude Desktop MCP configuration
{
"mcpServers": {
"pix-mcp": {
"command": "npx",
"args": ["pix-mcp"],
"env": {
"MCP_MODE": "stdio"
}
}
}
}
Then in Claude:
Create a Pix charge for R$25.50 to Maria Silva for lunch
Creates a static Pix payment QR code following BACEN EMV 4.0 standards.
Parameters:
pixKey
(string): Valid Pix key (email, phone, CPF, CNPJ, or random key)amount
(number): Payment amount in BRL (0.01 to 999,999.99)recipientName
(string): Name of the payment recipient (max 25 chars)recipientCity
(string): City of the payment recipient (max 15 chars)
Returns:
- Payment details (amount, recipient, city)
- Pix copy-paste code (EMV format)
- QR code image (base64 data URL)
- Success status and message
Supported Pix Key Types:
- π§ Email:
example@email.com
- π± Phone:
+5511999999999
- π€ CPF:
12345678901
(11 digits) - π’ CNPJ:
12345678000195
(14 digits) - π Random Key:
123e4567-e89b-12d3-a456-426614174000
(UUID format)
# Development mode with hot reload
npm run dev
# Run tests
npm test
# Build for production
npm run build
# Lint code
npm run lint
# Format code
npm run format
-
generateStaticPix
tool - Static Pix QR code generation
- QR code generation
- Claude Desktop compatibility
- EMV 4.0 compliance
- CRC16-CCITT validation
- All Pix key types support
- Public deployment
- Register with MCP registry
- β EMV 4.0 standard compliance
- β CRC16-CCITT checksum validation
- β Input validation with Zod schemas
- β Pix key format validation
- β Comprehensive error handling
- β Type-safe TypeScript implementation
- CPF/CNPJ Keys: Must be valid and registered as Pix keys
- Test Data: Avoid using fake CPFs like
12345678900
- they will be rejected by banks - Static Codes: No expiration, recipient must check payments manually
- Validation: All codes are EMV-compliant and pass bank validation
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- GitHub Issues: Report bugs or request features
- Documentation: Available in this README
Made with β€οΈ for the Brazilian Pix ecosystem