Skip to main content
Glama

TAK Server MCP

by jfuginay
MIT License
1

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 areas
  • tak_calculate_distance - Distance calculations with travel time estimates
  • tak_find_nearest - Find nearest entities with bearings
  • tak_create_geofence - Create geofenced areas with alerts
  • tak_analyze_movement - Track movements and detect anomalies
📡 Real-time Operations
  • tak_get_cot_events - Retrieve Cursor on Target events
  • tak_send_cot_event - Send CoT messages
  • tak_subscribe_events - Subscribe to live event streams
  • tak_get_entities - Get current entity states
🚨 Mission & Emergency
  • tak_get_missions - List and manage missions
  • tak_get_alerts - Retrieve and filter alerts
  • tak_send_emergency - Send emergency broadcasts
  • tak_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

🛠️ 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

🚦 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

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
    Last updated -
    16
    1
    TypeScript
  • -
    security
    A
    license
    -
    quality
    A customizable Model Context Protocol server implementation that enables AI models to interact with external tools including weather queries, Google search, and camera control functionality.
    Last updated -
    13
    Python
    Apache 2.0
    • Linux
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that connects LLMs to GIS operations, enabling AI assistants to perform accurate geospatial analysis including geometric operations, coordinate transformations, and spatial measurements.
    Last updated -
    34
    12
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.
    Last updated -
    1
    Python

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jfuginay/tak-server-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server