JSON MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JSON MCP Serverset name to John Doe in data.json"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
JSON MCP Server
A powerful MCP (Model Context Protocol) server for editing and managing JSON files with dot-notation path access.
Features
✅ Read JSON values using dot-separated paths
✏️ Set or update JSON values (supports nested structures)
🗑️ Delete JSON key-value pairs
🔄 Auto-create missing JSON files
🌳 Automatically create intermediate nested objects
Related MCP server: JSON Editor MCP
Installation
# Activate virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtRunning the Server
python mcp_json.pyThe server runs on stdio transport by default, which is the standard for MCP clients like Claude Desktop.
Tools
1. json:get - Get Value
Retrieve a value from a JSON file using a dot-separated key path.
Parameters:
path: JSON file path (absolute or relative)key: Dot-separated key path (e.g.,"user.name")
Examples:
json:get(path="data.json", key="name")
json:get(path="config.json", key="database.host")
json:get(path="users.json", key="users.0.name")2. json:set - Set Value
Set or update a value in a JSON file. Supports JSON strings or plain strings. Automatically creates missing intermediate objects.
Parameters:
path: JSON file pathkey: Dot-separated key pathvalue: Value to set (can be JSON string)
Examples:
json:set(path="data.json", key="name", value="John Doe")
json:set(path="config.json", key="port", value="3000")
json:set(path="config.json", key="database", value='{"host":"localhost","port":5432}')
json:set(path="data.json", key="tags", value='["python","mcp","json"]')
json:set(path="config.json", key="api.endpoints.users", value="/api/v1/users")3. json:delete - Delete Key
Delete a key from a JSON file using a dot-separated key path.
Parameters:
path: JSON file pathkey: Dot-separated key path
Examples:
json:delete(path="data.json", key="oldField")
json:delete(path="config.json", key="database.password")
json:delete(path="user.json", key="settings.theme")Usage Examples
Example 1: Create User Configuration
json:set(path="user.json", key="profile.name", value="John Doe")
json:set(path="user.json", key="profile.email", value="john@example.com")
json:set(path="user.json", key="profile.age", value="30")
json:set(path="user.json", key="settings.theme", value="dark")
json:set(path="user.json", key="settings.notifications", value="true")
json:get(path="user.json", key="profile")Result user.json:
{
"profile": {
"name": "John Doe",
"email": "john@example.com",
"age": "30"
},
"settings": {
"theme": "dark",
"notifications": "true"
}
}Example 2: Manage API Configuration
json:set(path="api.json", key="api.baseUrl", value="https://api.example.com")
json:set(path="api.json", key="api.version", value="v2")
json:set(path="api.json", key="api.timeout", value="5000")
json:set(path="api.json", key="endpoints", value='{"users":"/users","posts":"/posts"}')
json:get(path="api.json", key="api")
json:delete(path="api.json", key="endpoints.posts")Example 3: Working with Arrays
json:set(path="tasks.json", key="tasks", value='[{"id":1,"title":"Learn MCP","done":false}]')
json:get(path="tasks.json", key="tasks.0.title")MCP Client Configuration
Add this server to your MCP client (e.g., Claude Desktop):
{
"mcpServers": {
"json-editor": {
"command": "python3",
"args": ["/absolute/path/to/mcp_json.py"],
"enabled": true
}
}
}Or using the virtual environment Python:
{
"mcpServers": {
"json-editor": {
"command": "/absolute/path/to/venv/bin/python",
"args": ["/absolute/path/to/mcp_json.py"],
"enabled": true
}
}
}How It Works
Dot-notation paths: Use dots (
.) to separate nested keys:"user.profile.name"Auto-creation: Missing files are created as empty objects
{}Nested objects: Missing intermediate objects are automatically created
Value parsing: The
valueparameter attempts JSON parsing first, falls back to stringPretty formatting: JSON files are saved with 2-space indentation
Error Messages
❌ Key not found: {key}- When trying to get or delete a non-existent keyInvalid JSON format: {path}- When the file exists but contains invalid JSON
Development
The server uses FastMCP, which provides:
Automatic parameter validation
Built-in error handling
Support for multiple transports (stdio, SSE, HTTP)
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-key temporary JSON database for agents: one tool call, no signup, no OAuth, no API keys.
JSONPad docs, API, SDK and CLI references, and offline checkers for write rules and flows.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Read and write Drupal JSON:API nodes, taxonomy terms, users and files.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to manage data in a simple JSON file database through MCP tools and REST API. Supports creating, reading, updating, and deleting items organized in collections with auto-generated UUIDs.-
- AlicenseAqualityDmaintenanceEnables efficient JSON file editing with targeted read, write, delete, and deep merge operations using dot notation paths, optimized for managing multilingual projects and large configuration files.49 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language interaction with JSON files, providing tools to load, query, aggregate, transform, and export data directly from AI editors.3MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to read, write, query, and manage JSON data files with automatic ID and timestamp generation.67 npm1MIT