The Simple Tools server is a lightweight testing server that provides basic key-value storage functionality. It’s designed for testing MCP server implementations and demonstrating multi-user data isolation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dvlpjrs/guMCP/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This server demonstrates:- Basic tool implementation patterns
- User-specific data isolation
- Stateful server operations
- Simple CRUD operations
Authentication
No authentication required. The server uses user IDs for data isolation.User Data Isolation
Each user has an isolated data store:- Data stores are created automatically per user ID
- Users cannot access other users’ data
- Data persists for the lifetime of the server process
Tools
store-data
store-data
Store a key-value pair in the server.Parameters:Response:Notes:
key(string, required): The storage keyvalue(string, required): The value to store
- Overwrites existing values with the same key
- Data is stored in-memory per user ID
- No persistence across server restarts
retrieve-data
retrieve-data
Retrieve a value by its key.Parameters:Response (if found):Response (if not found):
key(string, required): The storage key to retrieve
list-data
list-data
List all stored key-value pairs for the current user.Parameters: NoneExample Response (with data):Example Response (empty):
Data Structure
The server maintains a simple in-memory structure:Usage Examples
Basic Storage Workflow
- Store data:
- Retrieve data:
- List all data:
Multi-User Example
User A stores:Server Implementation
The server is implemented insrc/servers/simple-tools-server/main.py:
Key Components
- Server Name:
simple-tools-server - Version: 1.0.0
- Data Storage: In-memory dictionary per user
- Tool Count: 3 tools
Initialization
Testing
This server is ideal for:-
MCP Protocol Testing:
- Verify tool listing
- Test tool execution
- Validate error handling
-
Multi-User Testing:
- Confirm data isolation
- Test concurrent access
- Verify user context handling
-
Integration Testing:
- Simple server setup
- No external dependencies
- Predictable behavior
Limitations
- No Persistence: Data is lost when server stops
- In-Memory Only: Not suitable for large datasets
- String Values Only: All values stored as strings
- No Authentication: User ID is trusted from context
- No Data Expiration: Data persists indefinitely during runtime
Error Handling
The server validates:- Missing arguments (raises
ValueError) - Missing required fields (raises
ValueError) - Unknown tools (raises
ValueError)
Use Cases
-
Testing MCP Clients:
- Verify client tool calling
- Test error handling
- Validate response parsing
-
Development:
- Quick server setup for prototyping
- Learning MCP protocol
- Testing server features
-
Demonstration:
- Show stateful operations
- Illustrate user isolation
- Example of CRUD operations
Best Practices
- Use unique keys to avoid accidental overwrites
- List data regularly to verify storage state
- Clear understanding that data is not persistent
- Test multi-user scenarios to verify isolation
- Handle “not found” cases in client applications