
TAK Server MCP
A Model Context Protocol server that integrates TAK Server with AI systems, providing geospatial-aware tools for querying, analyzing, and interacting with tactical data.
README
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 Contributing Guide 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 LICENSE 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.