jfuginay/tak-server-mcp
3.3
If you are the rightful owner of tak-server-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The TAK Server MCP (Model Context Protocol) is designed to integrate TAK Server with AI systems, providing advanced geospatial-aware research and analysis capabilities.
Tools
13
Resources
0
Prompts
0
TAK Server MCP (Model Context Protocol)
A Model Context Protocol (MCP) server for integrating TAK Server with AI systems, enabling geospatial-aware deep research and analysis capabilities.
π Features
Multi-Transport Support
- stdio - Standard input/output for CLI integration
- HTTP+SSE - Server-Sent Events for web integration
- WebSocket - Real-time bidirectional communication
Complete Tool Suite (11 Tools)
π Geospatial Operations
tak_spatial_query
- Query entities within geographic areastak_calculate_distance
- Distance calculations with travel time estimatestak_find_nearest
- Find nearest entities with bearingstak_create_geofence
- Create geofenced areas with alertstak_analyze_movement
- Track movements and detect anomalies
π‘ Real-time Operations
tak_get_cot_events
- Retrieve Cursor on Target eventstak_send_cot_event
- Send CoT messagestak_subscribe_events
- Subscribe to live event streamstak_get_entities
- Get current entity states
π¨ Mission & Emergency
tak_get_missions
- List and manage missionstak_get_alerts
- Retrieve and filter alertstak_send_emergency
- Send emergency broadcaststak_manage_data_packages
- Upload/download data packages
Advanced Features
- π Multiple authentication methods (OAuth 2.0, API tokens, certificates)
- π H3 hexagonal indexing for spatial queries
- πΊοΈ MGRS coordinate conversion
- β‘ Real-time WebSocket subscriptions
- πΎ Intelligent caching with TTL
- π Comprehensive error handling
π Prerequisites
- Node.js >= 18.0.0
- TAK Server instance (one of):
- TAK Server (Official)
- FreeTAKServer (Open Source)
- taky (Lightweight, CoT only)
π οΈ Installation
Using NPM
npm install @skyfi/tak-server-mcp
From Source
git clone https://github.com/skyfi/tak-server-mcp.git
cd tak-server-mcp
npm install
npm run build
Using Docker
docker pull skyfi/tak-server-mcp:latest
βοΈ Configuration
Environment Variables
# TAK Server Connection
TAK_SERVER_URL=https://your-tak-server.com
TAK_SERVER_API_TOKEN=your-api-token
TAK_SERVER_CLIENT_CERT=/path/to/cert.pem
TAK_SERVER_CLIENT_KEY=/path/to/key.pem
# MCP Configuration
MCP_TRANSPORT=stdio
MCP_PORT=3000
MCP_AUTH_ENABLED=false
Configuration File
Create a config.json
:
{
"takServer": {
"url": "https://your-tak-server.com",
"apiToken": "your-token",
"verifySsl": true
},
"mcp": {
"transport": "stdio",
"port": 3000
},
"tools": {
"enabledTools": ["tak_get_cot_events", "tak_spatial_query"]
}
}
π Quick Start
1. With Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"tak-server": {
"command": "npx",
"args": ["@skyfi/tak-server-mcp"],
"env": {
"TAK_SERVER_URL": "https://your-tak-server.com",
"TAK_SERVER_API_TOKEN": "your-token"
}
}
}
}
2. With Docker
docker run -it --rm \
-e TAK_SERVER_URL=https://your-tak-server.com \
-e TAK_SERVER_API_TOKEN=your-token \
skyfi/tak-server-mcp:latest
3. Command Line
# Install globally
npm install -g @skyfi/tak-server-mcp
# Run with environment variables
TAK_SERVER_URL=https://your-tak-server.com \
TAK_SERVER_API_TOKEN=your-token \
tak-server-mcp
# Or with config file
tak-server-mcp --config ./config.json
π Usage Examples
Calculate Distance Between Points
{
"tool": "tak_calculate_distance",
"arguments": {
"from": { "coordinates": [37.7749, -122.4194] },
"to": { "coordinates": [37.7849, -122.4094] },
"units": "kilometers"
}
}
Find Nearest Friendly Units
{
"tool": "tak_find_nearest",
"arguments": {
"point": { "coordinates": [37.7749, -122.4194] },
"maxDistance": 5000,
"entityTypes": ["a-f-*"],
"maxResults": 5
}
}
Create Security Geofence
{
"tool": "tak_create_geofence",
"arguments": {
"name": "Base Perimeter",
"shape": {
"type": "circle",
"center": [37.7749, -122.4194],
"radius": 2000
},
"alertLevel": "high",
"triggers": {
"onEntry": true,
"onExit": true
}
}
}
π§ͺ Testing
Run Tests
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run integration tests
npm run test:integration
Test with TAK Server
# Test connection
./test-all-tools.js
# Run specific tool tests
./test-all-tools.js --tool tak_spatial_query
π³ Docker Deployment
Build Image
docker build -t tak-server-mcp .
Run Container
docker run -d \
--name tak-mcp \
-e TAK_SERVER_URL=https://tak.example.com \
-e TAK_SERVER_API_TOKEN=your-token \
-p 3000:3000 \
tak-server-mcp
Docker Compose
version: '3.8'
services:
tak-mcp:
image: skyfi/tak-server-mcp:latest
environment:
TAK_SERVER_URL: ${TAK_SERVER_URL}
TAK_SERVER_API_TOKEN: ${TAK_SERVER_API_TOKEN}
MCP_TRANSPORT: http
MCP_PORT: 3000
ports:
- "3000:3000"
π€ Integration Examples
With LangChain
from langchain.tools import MCPTool
tak_tool = MCPTool(
name="tak-server",
server_url="http://localhost:3000",
auth_token="your-mcp-token"
)
result = agent.run("Find all units within 10km of coordinates 37.7749, -122.4194")
With Anthropic SDK
import { MCPClient } from '@modelcontextprotocol/sdk';
const mcp = new MCPClient({
serverUrl: 'http://localhost:3000',
transport: 'http'
});
const tools = await mcp.listTools();
const result = await mcp.callTool('tak_spatial_query', {
center: [37.7749, -122.4194],
radius: 10000
});
ποΈ Architecture
βββββββββββββββββββ ββββββββββββββββ βββββββββββββββ
β AI Systems ββββββΆβ MCP Server ββββββΆβ TAK Server β
β (LLMs, Agents) βββββββ βββββββ β
βββββββββββββββββββ ββββββββββββββββ βββββββββββββββ
β β β
β βΌ β
β ββββββββββββββββ β
βββββββββββββββΆβ Tool Handlersββββββββββββββββ
ββββββββββββββββ
π Security
- TLS 1.2+ for all communications
- OAuth 2.0 and certificate-based authentication
- Input validation and sanitization
- Rate limiting and access controls
- Audit logging for all operations
π Documentation
π€ Contributing
We welcome contributions! Please see our for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add 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 - see the file for details.
π Acknowledgments
- TAK Product Center for TAK Server documentation
- Anthropic for the MCP specification
- The open-source geospatial community
π Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@skyfi.com
π¦ Status
- β All 11 advertised tools implemented
- β Multi-transport support (stdio, HTTP, SSE)
- β Docker support
- β FreeTAKServer compatible
- π§ Test coverage in progress
- π§ Additional tool development ongoing
Made with β€οΈ by SkyFi