A Model Context Protocol server that implements various tools for task management, calendar operations, and web searching capabilities.
Before you begin, make sure you have:
- Node.js installed on your computer
- Claude Desktop App installed
- Basic familiarity with using the terminal/command prompt
Choose one of these methods:
- Using Git:
git clone https://github.com/Sjotie/JarvisJrMCP.git
cd JarvisJrMCP- Download as ZIP:
- Go to the GitHub repository
- Click the green "Code" button
- Select "Download ZIP"
- Extract the ZIP file
- Open terminal/command prompt and navigate to the extracted folder
- Open your terminal/command prompt in the project directory
- Install dependencies:
npm install- Build the server:
npm run build- Open Claude Desktop app
- Access settings either by:
- Clicking the settings icon in the top left, OR
- Using the keyboard shortcut:
- Windows: Ctrl + ,
- Mac: Command + ,
- Go to "Developer Settings"
- Click "Edit Config File" - this will open your config file location
- Calendar management (create, update, delete, search events)
- Task management (create, update, retrieve to-dos)
- Note storage
- Web search functionality
- Current time retrieval in various formats
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchTo use with Claude Desktop, add the server config and webhook URL:
On Windows: %APPDATA%/Claude/claude_desktop_config.json
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"jarvisjr": {
"command": "node",
"args": [
"/path/to/your/build/index.js"
],
"env": {
"WEBHOOK_URL": "your-webhook-url-here"
}
}
}
}Tools can be added by modifying the src/config/tools.json file. The configuration supports both local tools and webhook services.
Structure of the tools configuration:
{
"local": {
"tools": {
"toolName": {
"description": "Tool description",
"method": "GET",
"inputSchema": {
"type": "object",
"properties": {}
}
}
}
},
"webhooks": {
"serviceName": {
"baseUrl": "${WEBHOOK_URL}",
"tools": {
"toolName": {
"description": "Tool description",
"method": "POST",
"inputSchema": {
"type": "object",
"properties": {
"parameter1": {
"type": "string",
"description": "Parameter description"
}
},
"required": ["parameter1"]
}
}
}
}
}
}Key components:
local: Container for tools implemented directly in the serverwebhooks: Container for external webhook servicesbaseUrl: Base URL for the webhook service (supports environment variables)tools: Collection of available toolsdescription: A brief description of what the tool doesmethod: HTTP method (GET/POST)inputSchema: JSON Schema defining the expected input parameters
The server automatically:
- Handles both local and webhook-based tools
- Resolves environment variables in URLs
- Routes requests to the appropriate implementation