EPSG MCP Server
An MCP server that provides specialized knowledge and decision support for Coordinate Reference Systems (CRS) worldwide.
Global coverage through a 3-layer fallback:
- Country Packs (Japan, US State Plane, UK National Grid, etc.) for expert-level recommendations
- Automatic UTM zone calculation when no pack is available
- Safe defaults (WGS84 / Web Mercator) as the final fallback
Coordinate transformation execution is delegated to mcp-server-proj, focusing on knowledge provision and decision support.
Features
- CRS Search: Search CRS by EPSG code, name, region, or prefecture
- Detailed Information: Get detailed information on geodetic datum, projection method, area of use, accuracy characteristics, and more
- Regional Listings: List CRS available in Japan/Global with purpose-specific recommendations
- CRS Recommendation: Recommend the optimal CRS for each purpose and location (with multi-zone support for Hokkaido and Okinawa)
- Usage Validation: Verify the validity of CRS selection and present issues with suggestions for improvement
- Transformation Routing: Propose optimal transformation paths using BFS graph search (with reverse transformation support)
- CRS Comparison: Compare CRS from 7 perspectives (datum, projection, accuracy, distortion, compatibility, etc.)
- Best Practices: CRS usage guidance on 10 topics (surveying, web mapping, data exchange, etc.)
- Troubleshooting: Diagnose CRS problems by symptoms (coordinate shifts, calculation errors, etc.)
- Country Pack System: Extensible regional expertise (Japan, US, UK available; easily add more)
- Offline Operation: Local database requires no external API
- Internationalized: Tool definitions and parameter descriptions in English (usable by AI agents in any language)
- Graceful Degradation: Works anywhere via UTM fallback even without region-specific packs
Installation
npm install @shuji-bonji/epsg-mcp
Or run directly:
npx @shuji-bonji/epsg-mcp
Usage
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"epsg": {
"command": "npx",
"args": ["@shuji-bonji/epsg-mcp"]
}
}
}
Enabling Additional Country Packs
By default, only the Japan pack is loaded. To enable additional packs (e.g., US, UK), set the EPSG_PACKS environment variable:
{
"mcpServers": {
"epsg": {
"command": "npx",
"args": ["@shuji-bonji/epsg-mcp"],
"env": {
"EPSG_PACKS": "jp,us,uk"
}
}
}
}
Available packs: jp (Japan), us (United States), uk/gb (United Kingdom)
Language Settings
By default, output is in English. To get Japanese output, set the EPSG_LANG environment variable:
{
"mcpServers": {
"epsg": {
"command": "npx",
"args": ["@shuji-bonji/epsg-mcp"],
"env": {
"EPSG_LANG": "ja"
}
}
}
}
MCP Inspector
npx @anthropic-ai/mcp-inspector npx @shuji-bonji/epsg-mcp
Tools
search_crs
Search CRS by keyword.
// Input
{
query: string; // Search keyword (e.g., "JGD2011", "4326", "Tokyo")
type?: "geographic" | "projected" | "compound" | "vertical" | "engineering";
region?: "Japan" | "Global";
limit?: number; // Default: 10
}
// Output
{
results: CrsInfo[];
totalCount: number;
}
Usage Examples:
- "Search for CRS related to JGD2011"
- "Find projected coordinate systems available in Tokyo"
- "Get information about EPSG code 6677"
get_crs_detail
Get detailed CRS information by EPSG code.
// Input
{
code: string; // "EPSG:6677" or "6677"
}
// Output
{
code: string;
name: string;
type: CrsType;
datum?: DatumInfo;
projection?: ProjectionInfo;
areaOfUse: AreaOfUse;
accuracy?: AccuracyInfo;
remarks?: string;
useCases?: string[];
// ...
}
Usage Examples:
- "Tell me the details of EPSG:6677"
- "What are the characteristics of Web Mercator (3857)?"
list_crs_by_region
Get available CRS list and recommendations by region.
// Input
{
region: "Japan" | "Global";
type?: CrsType;
includeDeprecated?: boolean; // Default: false
}
Tools 3
search_crsSearch for Coordinate Reference Systems by keyword, type, or region.get_crs_detailRetrieve detailed information about a specific CRS using its EPSG code.list_crs_by_regionGet a list of available CRS and recommendations for a specific region.Environment Variables
EPSG_PACKSComma-separated list of regional packs to enable (e.g., jp,us,uk)EPSG_LANGSet output language (e.g., ja for Japanese)