Firelinks MCP Server
MCP (Model Context Protocol) server for the Firelinks platform, allowing external LLMs (Large Language Models) to interact with the Firelinks API - https://firelinks.cc/p/api
Description
This server implements the MCP protocol developed by Anthropic and provides a set of tools for working with the Firelinks platform:
- Link Management: create, retrieve, edit short links
- Statistics: get detailed click statistics, compare periods
- Domains: manage custom domains
- Servers: get list of available servers
Architecture
LLM client → HTTPS (mcp.firelinks.cc) → Node.js MCP Server → Firelinks API Backend
Requirements
- Node.js >= 20.0.0
- Docker and Docker Compose (for containerization)
- Firelinks API token
Installation
Local Development
- Install dependencies:
cd mcp-server
npm install
- Create
.envfile based on.env.example:
cp .env.example .env
- Configure environment variables in
.env:
PORT=3000
LARAVEL_API_URL=https://firelinks.cc/api
NODE_ENV=development
- Start the server:
npm start
Or for development mode with auto-reload:
npm run dev
Docker
- Build the image:
docker build -t firelinks-mcp-server .
- Run the container:
docker run -d \
-p 3000:3000 \
-e LARAVEL_API_URL=https://firelinks.cc/api \
--name firelinks-mcp-server \
firelinks-mcp-server
Docker Compose
docker-compose up -d
Usage
Endpoints
GET /health- server health checkPOST /mcp- main MCP endpoint (JSON-RPC 2.0)GET /sse- Server-Sent Events for streaming
Authentication
All requests to /mcp require an authentication token in the header:
Authorization: Bearer YOUR_API_TOKEN
You can get an API token in your Firelinks account.
Integration with LLM Clients
Claude Desktop
Add to Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"firelinks": {
"url": "https://mcp.firelinks.cc/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Cursor
Add to Cursor configuration (mcp.json):
{
"mcpServers": {
"firelinks": {
"url": "https://mcp.firelinks.cc/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Other MCP Clients
For connecting to other MCP-compatible clients use:
- URL:
https://mcp.firelinks.cc/mcp - Transport: HTTP
- Authentication: Bearer token in Authorization header
Available Tools
Links
firelinks_create_link- create short linkfirelinks_get_link- get link informationfirelinks_list_links- list all linksfirelinks_update_link_url- update link URLfirelinks_add_reserve_url- add reserve URL
Statistics
firelinks_stat_days- statistics by daysfirelinks_stat_total- total statistics for periodfirelinks_stat_links- statistics for all linksfirelinks_stat_clicks- detailed click statisticsfirelinks_stat_compare- compare two periods
Domains
firelinks_list_domains- list domainsfirelinks_create_domain- add domain
Servers
firelinks_list_servers- list available servers
Request Examples
Initialize
curl -X POST https://mcp.firelinks.cc/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {},
"id": 1
}'
List Tools
curl -X POST https://mcp.firelinks.cc/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 1
}'
Create Link
curl -X POST https://mcp.firelinks.cc/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "firelinks_create_link",
"arguments": {
"url": "https://example.com",
"type": "url",
"redirect_type": 0,
"code": "my-link"
}
},
"id": 1
}'
Required parameters:
url- Valid link with http or httpstype- The type of link (use "url" for web links)redirect_type- Redirect type: 0 (301), 1 (302), 2 (303), 4 (META Refresh)
Optional parameters:
link_name- Link namecode- Custom link code (must be unique)domain_id- Domain IDsub_domain- Subdomainkeywords- Keywords for searchkeywords_mode- Keyword search logic (1, 2, or 3)group_id- Link group IDoptions- Additional settings string
Get Statistics
curl -X POST https://mcp.firelinks.cc/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "firelinks_stat_days",
"arguments": {
"date_from": "2024-01-01",
"date_to": "2024-01-31"
}
},
"id": 1
}'
Project Structure
mcp-server/
├── src/
│ ├── index.js # Main Express server file
│ ├── lib/
│ │ ├── laravel-api.js # HTTP client for Laravel API
│ │ └── mcp-handler.js # MCP protocol handler
│ └── tools/
│ ├── links.js # Tools for links
│ ├── statistics.js # Tools for statistics
│ ├── domains.js # Tools for domains
│ └── servers.js # Tools for servers
├── package.json
├── Dockerfile
├── docker-compose.yml
├── .env.example
└── README.md
Troubleshooting
Authentication Error
Problem: Missing or invalid Authorization header
Solution: Make sure the request header contains a valid token:
Authorization: Bearer YOUR_API_TOKEN
Request Timeout
Problem: Requests to Laravel API timeout
Solution:
- Check Laravel API availability
- Increase timeout in
src/lib/laravel-api.js - Check network connectivity between containers
Server Won't Start
Problem: Error on startup
Solution:
- Check logs:
docker logs firelinks-mcp-server - Make sure port 3000 is not in use
- Check environment variables are correct
License
MIT
Support
For questions and support contact support@firelinks.cc