{"id":30598373,"url":"https://github.com/jokerqyou/jsonmcptool","last_synced_at":"2026-04-12T09:02:46.749Z","repository":{"id":311786475,"uuid":"1044719715","full_name":"JokerQyou/JsonMcpTool","owner":"JokerQyou","description":"An MCP server for LLM to edit I18Next JSON files","archived":false,"fork":false,"pushed_at":"2025-08-26T15:06:36.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-26T20:58:12.378Z","etag":null,"topics":["claude-code","json","mcp","mcp-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JokerQyou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-26T05:41:27.000Z","updated_at":"2025-08-26T15:06:39.000Z","dependencies_parsed_at":"2025-08-26T20:58:21.326Z","dependency_job_id":"125e2320-f34f-486f-8611-1bfbd1f96a45","html_url":"https://github.com/JokerQyou/JsonMcpTool","commit_stats":null,"previous_names":["jokerqyou/jsonmcptool"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/JokerQyou/JsonMcpTool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JokerQyou%2FJsonMcpTool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JokerQyou%2FJsonMcpTool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JokerQyou%2FJsonMcpTool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JokerQyou%2FJsonMcpTool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JokerQyou","download_url":"https://codeload.github.com/JokerQyou/JsonMcpTool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JokerQyou%2FJsonMcpTool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272777800,"owners_count":24991498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","json","mcp","mcp-server"],"created_at":"2025-08-29T22:49:14.088Z","updated_at":"2026-04-12T09:02:46.743Z","avatar_url":"https://github.com/JokerQyou.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JsonMcpTool (Go Version)\n\nA complete MCP (Model Context Protocol) tool for efficient JSON file processing, specifically designed for I18Next translation files and other large JSON documents. This is the **Go rewrite** of the original Python implementation for better performance and easier deployment.\n\n## 🚀 Performance \u0026 Benefits\n\nThe Go version provides:\n- **Faster execution** - Native Go performance vs Python interpreted code\n- **Lower memory usage** - More efficient memory management\n- **Single binary** - No Python dependencies, easy deployment\n- **Better concurrency** - Go's built-in concurrency support\n- **100% API compatibility** - Drop-in replacement for Python version\n\n## What This Tool Does\n\nJsonMcpTool allows you to interact with JSON translation files through **Claude Code** using natural language. Instead of manually editing large translation files, you can ask Claude to:\n\n- \"Get the dashboard title from my translations.json\"\n- \"Set the login form validation text\"\n- \"Remove the deprecated translations\"\n\nDesigned specifically for **i18next translation files** with a minimal tool set that won't clutter the LLM context window.\n\n## Key Features\n\n- **🎯 I18Next Optimized**: Perfect for translation files with interpolation (`{{name}}`)\n- **✨ Minimal Tool Set**: Only 3 core tools (set, get, remove) - won't clutter LLM context\n- **📝 Indentation Preservation**: Automatically detects and preserves your JSON formatting (2/4 spaces, tabs)\n- **🔍 Smart Path Resolution**: Works with dot-notation paths like `section.subsection.key`\n- **💾 Safe Operations**: Atomic file writes prevent corruption\n- **⚡ Fast**: Native Go performance, optimized for files up to 100MB+\n- **🛡️ Error Handling**: Clear error messages for debugging\n\n## Installation \u0026 Setup\n\n### 1. Prerequisites\n\nYou need Go installed (1.23 or later):\n\n```bash\n# Check if Go is installed\ngo version\n\n# If not installed, download from https://golang.org/dl/\n```\n\n### 2. Build JsonMcpTool\n\n```bash\n# Clone or download this repository\ngit clone \u003crepository-url\u003e /path/to/JsonMcpTool\ncd /path/to/JsonMcpTool\n\n# Build the binary\ngo build -o jsonmcptool ./cmd/server\n\n# Or install directly\ngo install ./cmd/server\n```\n\n### 3. Configure Claude Code\n\nAdd JsonMcpTool to your Claude Code MCP configuration:\n\n```bash\n# Using the built binary\nclaude mcp add jsonmcptool -- /PATH/TO/JsonMcpTool/jsonmcptool\n\n# Or if installed globally\nclaude mcp add jsonmcptool -- jsonmcptool\n```\n\n**Alternative manual configuration:**\n\n```json\n{\n  \"mcpServers\": {\n    \"jsonmcptool\": {\n      \"type\": \"stdio\",\n      \"command\": \"/PATH/TO/JsonMcpTool/jsonmcptool\"\n    }\n  }\n}\n```\n\n### 4. Restart Claude Code\n\nRestart Claude Code to load the new MCP tool.\n\n### 5. Test It Works\n\nCreate a simple JSON file and ask Claude:\n```\n\"I have a translations.json file at /path/to/translations.json with this content:\n{\n  \"dashboard\": {\n    \"title\": \"Dashboard\"  \n  }\n}\n\nCan you get the dashboard title for me?\"\n```\n\nClaude should respond with the value \"Dashboard\".\n\n## Development \u0026 Testing\n\n### Building from Source\n\n```bash\n# Clone the repository\ngit clone \u003crepository-url\u003e\ncd JsonMcpTool\n\n# Build\ngo build ./cmd/server\n\n# Run tests\ngo test ./... -v\n\n# Run benchmarks\ngo test ./... -bench=. -benchmem\n```\n\n### Project Structure\n\n```\nJsonMcpTool/\n├── cmd/server/main.go           # MCP server entry point\n├── internal/\n│   ├── jsonhandler/             # File I/O, parsing, caching, indent detection\n│   ├── pathresolver/            # Dot-notation path handling\n│   ├── operations/              # Core JSON operations (set/get/remove)\n│   └── mcpserver/               # MCP server setup\n├── testdata/                    # Test fixtures\n├── go.mod                       # Go module definition\n└── README.md                    # This file\n```\n\n## Available Tools\n\nThree focused tools optimized for i18next translation workflows:\n\n| Tool | Description | Example Usage |\n|------|-------------|---------------|\n| **set** | Set a string value at path (creates nested objects as needed) | *\"Set dashboard.title to 'New Title'\"* |\n| **get** | Get value at path (returns string or object) | *\"Get dashboard.title\"* |\n| **remove** | Remove key at path | *\"Remove the deprecated section\"* |\n\n### Design Notes\n\n- **String values only**: The `set` tool only accepts string values, matching i18next translation patterns\n- **Automatic nesting**: Setting `a.b.c` will create intermediate objects `{ \"a\": { \"b\": { \"c\": \"value\" } } }`\n- **Indentation preservation**: The tool automatically detects and preserves 2-space, 4-space, or tab indentation\n\n## Migration from Python Version\n\nThis Go version is a **streamlined implementation** focused on i18next translation workflows. The tool set has been simplified from 8 to 3 operations:\n\n| Old Tools | New Tool | Notes |\n|-----------|----------|-------|\n| `get_key` | `get` | Same functionality |\n| `add_key`, `update_key` | `set` | Unified into single tool |\n| `remove_key` | `remove` | Same functionality |\n| `rename_key`, `list_keys`, `key_exists`, `validate_json` | — | Removed (rarely needed) |\n\n### Performance Improvements\n\n- **Startup time**: ~50ms vs ~200ms (75% faster)\n- **Memory usage**: ~5MB vs ~15MB (67% less)\n- **JSON parsing**: ~2-3x faster for large files\n- **File operations**: ~40% faster due to efficient I/O\n\n### What's New in This Version\n\n- **Minimal tool set** - Only 3 tools, won't clutter LLM context window\n- **Indentation preservation** - Automatically detects and preserves 2/4 spaces or tabs\n- **Native Go performance** - Single binary, no runtime dependencies\n- **Simpler mental model** - Set/Get/Remove covers 99% of use cases\n- **Enhanced error messages** with precise location information\n\n## Troubleshooting\n\n### Common Issues\n\n**\"Tool not found\"**: \n- Restart Claude Code after adding the MCP configuration\n- Check that the path to the binary is absolute and correct\n- Ensure the binary was built successfully\n\n**\"Permission denied\"**:\n- Make sure the binary is executable: `chmod +x jsonmcptool`\n- On macOS/Linux, you might need to allow the binary in Security settings\n\n**Build errors**:\n- Ensure you have Go 1.23 or later: `go version`\n- Run `go mod tidy` to ensure dependencies are correct\n\n## What Makes This Special\n\nUnlike generic text-editing tools, JsonMcpTool:\n\n✅ **Minimal tool set** - Only 3 tools, won't clutter LLM context\n✅ **Indentation preservation** - Maintains your preferred formatting\n✅ **Understands JSON structure** - No risk of breaking syntax\n✅ **Handles large files efficiently** - Works with 100MB+ translation files\n✅ **Native Go performance** - 2-3x faster than Python version\n✅ **Single binary deployment** - No runtime dependencies\n✅ **Supports I18Next patterns** - Built for translation workflows\n✅ **Safe operations** - Atomic writes prevent file corruption\n✅ **Natural language interface** - Just ask Claude what you want to do\n\nPerfect for managing translation files, configuration files, or any JSON data through Claude Code!\n\n## License\n\nMIT License - Use freely in your projects!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjokerqyou%2Fjsonmcptool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjokerqyou%2Fjsonmcptool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjokerqyou%2Fjsonmcptool/lists"}