What is the io.github.sns45/dear-claude MCP server?
Spawn Claude Code instances from 6 platforms when 'Dear Claude' is mentioned.
How to install io.github.sns45/dear-claude
Copy-paste configuration for popular MCP clients.
DEAR_CLAUDE_PORTHTTP server port for webhooks (default: 3334)
TAILSCALE_HOSTNAMEOverride Tailscale hostname for webhook URLs (auto-detected if not set)
GITHUB_CLIENT_IDGitHub OAuth App or GitHub App client ID
GITHUB_CLIENT_SECRETsecretGitHub OAuth App or GitHub App client secret
GITHUB_WEBHOOK_SECRETsecretGitHub webhook signature secret
GITHUB_ACCESS_TOKENsecretGitHub personal access token (alternative to OAuth)
GITHUB_APP_IDGitHub App ID (for installation-based auth)
GITHUB_APP_PRIVATE_KEY_PATHPath to GitHub App private key PEM file
LINEAR_CLIENT_IDLinear OAuth application client ID
LINEAR_CLIENT_SECRETsecretLinear OAuth application client secret
LINEAR_WEBHOOK_SECRETsecretLinear webhook signing secret
LINEAR_ACCESS_TOKENsecretLinear personal API key (alternative to OAuth)
JIRA_DOMAINJira Cloud domain (e.g. 'mycompany' for mycompany.atlassian.net)
JIRA_USER_EMAILJira account email for API authentication
JIRA_API_TOKENsecretJira API token from id.atlassian.com
JIRA_WEBHOOK_SECRETsecretShared secret for Jira webhook URL validation
GITLAB_ACCESS_TOKENsecretGitLab personal or project access token
GITLAB_WEBHOOK_SECRETsecretGitLab webhook secret token
NOTION_CLIENT_IDNotion OAuth integration client ID
NOTION_CLIENT_SECRETsecretNotion OAuth integration client secret
NOTION_ACCESS_TOKENsecretNotion internal integration token (alternative to OAuth)
NOTION_WEBHOOK_SECRETsecretNotion webhook verification secret
OBSIDIAN_VAULT_PATHAbsolute path to Obsidian vault directory for file watching
GIPHY_API_KEYsecretGiphy API key for embedding GIF reactions in responses
{
"mcpServers": {
"dear-claude": {
"command": "npx",
"args": [
"-y",
"dear-claude"
],
"env": {
"DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
"TAILSCALE_HOSTNAME": "<YOUR_TAILSCALE_HOSTNAME>",
"GITHUB_CLIENT_ID": "<YOUR_GITHUB_CLIENT_ID>",
"GITHUB_CLIENT_SECRET": "<YOUR_GITHUB_CLIENT_SECRET>",
"GITHUB_WEBHOOK_SECRET": "<YOUR_GITHUB_WEBHOOK_SECRET>",
"GITHUB_ACCESS_TOKEN": "<YOUR_GITHUB_ACCESS_TOKEN>",
"GITHUB_APP_ID": "<YOUR_GITHUB_APP_ID>",
"GITHUB_APP_PRIVATE_KEY_PATH": "<YOUR_GITHUB_APP_PRIVATE_KEY_PATH>",
"LINEAR_CLIENT_ID": "<YOUR_LINEAR_CLIENT_ID>",
"LINEAR_CLIENT_SECRET": "<YOUR_LINEAR_CLIENT_SECRET>",
"LINEAR_WEBHOOK_SECRET": "<YOUR_LINEAR_WEBHOOK_SECRET>",
"LINEAR_ACCESS_TOKEN": "<YOUR_LINEAR_ACCESS_TOKEN>",
"JIRA_DOMAIN": "<YOUR_JIRA_DOMAIN>",
"JIRA_USER_EMAIL": "<YOUR_JIRA_USER_EMAIL>",
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"JIRA_WEBHOOK_SECRET": "<YOUR_JIRA_WEBHOOK_SECRET>",
"GITLAB_ACCESS_TOKEN": "<YOUR_GITLAB_ACCESS_TOKEN>",
"GITLAB_WEBHOOK_SECRET": "<YOUR_GITLAB_WEBHOOK_SECRET>",
"NOTION_CLIENT_ID": "<YOUR_NOTION_CLIENT_ID>",
"NOTION_CLIENT_SECRET": "<YOUR_NOTION_CLIENT_SECRET>",
"NOTION_ACCESS_TOKEN": "<YOUR_NOTION_ACCESS_TOKEN>",
"NOTION_WEBHOOK_SECRET": "<YOUR_NOTION_WEBHOOK_SECRET>",
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>",
"GIPHY_API_KEY": "<YOUR_GIPHY_API_KEY>"
}
}
}
}{
"mcpServers": {
"dear-claude": {
"command": "npx",
"args": [
"-y",
"dear-claude"
],
"env": {
"DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
"TAILSCALE_HOSTNAME": "<YOUR_TAILSCALE_HOSTNAME>",
"GITHUB_CLIENT_ID": "<YOUR_GITHUB_CLIENT_ID>",
"GITHUB_CLIENT_SECRET": "<YOUR_GITHUB_CLIENT_SECRET>",
"GITHUB_WEBHOOK_SECRET": "<YOUR_GITHUB_WEBHOOK_SECRET>",
"GITHUB_ACCESS_TOKEN": "<YOUR_GITHUB_ACCESS_TOKEN>",
"GITHUB_APP_ID": "<YOUR_GITHUB_APP_ID>",
"GITHUB_APP_PRIVATE_KEY_PATH": "<YOUR_GITHUB_APP_PRIVATE_KEY_PATH>",
"LINEAR_CLIENT_ID": "<YOUR_LINEAR_CLIENT_ID>",
"LINEAR_CLIENT_SECRET": "<YOUR_LINEAR_CLIENT_SECRET>",
"LINEAR_WEBHOOK_SECRET": "<YOUR_LINEAR_WEBHOOK_SECRET>",
"LINEAR_ACCESS_TOKEN": "<YOUR_LINEAR_ACCESS_TOKEN>",
"JIRA_DOMAIN": "<YOUR_JIRA_DOMAIN>",
"JIRA_USER_EMAIL": "<YOUR_JIRA_USER_EMAIL>",
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"JIRA_WEBHOOK_SECRET": "<YOUR_JIRA_WEBHOOK_SECRET>",
"GITLAB_ACCESS_TOKEN": "<YOUR_GITLAB_ACCESS_TOKEN>",
"GITLAB_WEBHOOK_SECRET": "<YOUR_GITLAB_WEBHOOK_SECRET>",
"NOTION_CLIENT_ID": "<YOUR_NOTION_CLIENT_ID>",
"NOTION_CLIENT_SECRET": "<YOUR_NOTION_CLIENT_SECRET>",
"NOTION_ACCESS_TOKEN": "<YOUR_NOTION_ACCESS_TOKEN>",
"NOTION_WEBHOOK_SECRET": "<YOUR_NOTION_WEBHOOK_SECRET>",
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>",
"GIPHY_API_KEY": "<YOUR_GIPHY_API_KEY>"
}
}
}
}{
"mcpServers": {
"dear-claude": {
"command": "npx",
"args": [
"-y",
"dear-claude"
],
"env": {
"DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
"TAILSCALE_HOSTNAME": "<YOUR_TAILSCALE_HOSTNAME>",
"GITHUB_CLIENT_ID": "<YOUR_GITHUB_CLIENT_ID>",
"GITHUB_CLIENT_SECRET": "<YOUR_GITHUB_CLIENT_SECRET>",
"GITHUB_WEBHOOK_SECRET": "<YOUR_GITHUB_WEBHOOK_SECRET>",
"GITHUB_ACCESS_TOKEN": "<YOUR_GITHUB_ACCESS_TOKEN>",
"GITHUB_APP_ID": "<YOUR_GITHUB_APP_ID>",
"GITHUB_APP_PRIVATE_KEY_PATH": "<YOUR_GITHUB_APP_PRIVATE_KEY_PATH>",
"LINEAR_CLIENT_ID": "<YOUR_LINEAR_CLIENT_ID>",
"LINEAR_CLIENT_SECRET": "<YOUR_LINEAR_CLIENT_SECRET>",
"LINEAR_WEBHOOK_SECRET": "<YOUR_LINEAR_WEBHOOK_SECRET>",
"LINEAR_ACCESS_TOKEN": "<YOUR_LINEAR_ACCESS_TOKEN>",
"JIRA_DOMAIN": "<YOUR_JIRA_DOMAIN>",
"JIRA_USER_EMAIL": "<YOUR_JIRA_USER_EMAIL>",
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"JIRA_WEBHOOK_SECRET": "<YOUR_JIRA_WEBHOOK_SECRET>",
"GITLAB_ACCESS_TOKEN": "<YOUR_GITLAB_ACCESS_TOKEN>",
"GITLAB_WEBHOOK_SECRET": "<YOUR_GITLAB_WEBHOOK_SECRET>",
"NOTION_CLIENT_ID": "<YOUR_NOTION_CLIENT_ID>",
"NOTION_CLIENT_SECRET": "<YOUR_NOTION_CLIENT_SECRET>",
"NOTION_ACCESS_TOKEN": "<YOUR_NOTION_ACCESS_TOKEN>",
"NOTION_WEBHOOK_SECRET": "<YOUR_NOTION_WEBHOOK_SECRET>",
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>",
"GIPHY_API_KEY": "<YOUR_GIPHY_API_KEY>"
}
}
}
}{
"servers": {
"dear-claude": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dear-claude"
],
"env": {
"DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
"TAILSCALE_HOSTNAME": "<YOUR_TAILSCALE_HOSTNAME>",
"GITHUB_CLIENT_ID": "<YOUR_GITHUB_CLIENT_ID>",
"GITHUB_CLIENT_SECRET": "<YOUR_GITHUB_CLIENT_SECRET>",
"GITHUB_WEBHOOK_SECRET": "<YOUR_GITHUB_WEBHOOK_SECRET>",
"GITHUB_ACCESS_TOKEN": "<YOUR_GITHUB_ACCESS_TOKEN>",
"GITHUB_APP_ID": "<YOUR_GITHUB_APP_ID>",
"GITHUB_APP_PRIVATE_KEY_PATH": "<YOUR_GITHUB_APP_PRIVATE_KEY_PATH>",
"LINEAR_CLIENT_ID": "<YOUR_LINEAR_CLIENT_ID>",
"LINEAR_CLIENT_SECRET": "<YOUR_LINEAR_CLIENT_SECRET>",
"LINEAR_WEBHOOK_SECRET": "<YOUR_LINEAR_WEBHOOK_SECRET>",
"LINEAR_ACCESS_TOKEN": "<YOUR_LINEAR_ACCESS_TOKEN>",
"JIRA_DOMAIN": "<YOUR_JIRA_DOMAIN>",
"JIRA_USER_EMAIL": "<YOUR_JIRA_USER_EMAIL>",
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"JIRA_WEBHOOK_SECRET": "<YOUR_JIRA_WEBHOOK_SECRET>",
"GITLAB_ACCESS_TOKEN": "<YOUR_GITLAB_ACCESS_TOKEN>",
"GITLAB_WEBHOOK_SECRET": "<YOUR_GITLAB_WEBHOOK_SECRET>",
"NOTION_CLIENT_ID": "<YOUR_NOTION_CLIENT_ID>",
"NOTION_CLIENT_SECRET": "<YOUR_NOTION_CLIENT_SECRET>",
"NOTION_ACCESS_TOKEN": "<YOUR_NOTION_ACCESS_TOKEN>",
"NOTION_WEBHOOK_SECRET": "<YOUR_NOTION_WEBHOOK_SECRET>",
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>",
"GIPHY_API_KEY": "<YOUR_GIPHY_API_KEY>"
}
}
}
}claude mcp add dear-claude --env DEAR_CLAUDE_PORT=<YOUR_DEAR_CLAUDE_PORT> --env TAILSCALE_HOSTNAME=<YOUR_TAILSCALE_HOSTNAME> --env GITHUB_CLIENT_ID=<YOUR_GITHUB_CLIENT_ID> --env GITHUB_CLIENT_SECRET=<YOUR_GITHUB_CLIENT_SECRET> --env GITHUB_WEBHOOK_SECRET=<YOUR_GITHUB_WEBHOOK_SECRET> --env GITHUB_ACCESS_TOKEN=<YOUR_GITHUB_ACCESS_TOKEN> --env GITHUB_APP_ID=<YOUR_GITHUB_APP_ID> --env GITHUB_APP_PRIVATE_KEY_PATH=<YOUR_GITHUB_APP_PRIVATE_KEY_PATH> --env LINEAR_CLIENT_ID=<YOUR_LINEAR_CLIENT_ID> --env LINEAR_CLIENT_SECRET=<YOUR_LINEAR_CLIENT_SECRET> --env LINEAR_WEBHOOK_SECRET=<YOUR_LINEAR_WEBHOOK_SECRET> --env LINEAR_ACCESS_TOKEN=<YOUR_LINEAR_ACCESS_TOKEN> --env JIRA_DOMAIN=<YOUR_JIRA_DOMAIN> --env JIRA_USER_EMAIL=<YOUR_JIRA_USER_EMAIL> --env JIRA_API_TOKEN=<YOUR_JIRA_API_TOKEN> --env JIRA_WEBHOOK_SECRET=<YOUR_JIRA_WEBHOOK_SECRET> --env GITLAB_ACCESS_TOKEN=<YOUR_GITLAB_ACCESS_TOKEN> --env GITLAB_WEBHOOK_SECRET=<YOUR_GITLAB_WEBHOOK_SECRET> --env NOTION_CLIENT_ID=<YOUR_NOTION_CLIENT_ID> --env NOTION_CLIENT_SECRET=<YOUR_NOTION_CLIENT_SECRET> --env NOTION_ACCESS_TOKEN=<YOUR_NOTION_ACCESS_TOKEN> --env NOTION_WEBHOOK_SECRET=<YOUR_NOTION_WEBHOOK_SECRET> --env OBSIDIAN_VAULT_PATH=<YOUR_OBSIDIAN_VAULT_PATH> --env GIPHY_API_KEY=<YOUR_GIPHY_API_KEY> -- npx -y dear-claudeRelated MCP servers
Voice Calls, SMS, and WhatsApp for Claude Code with cross-channel context sharing.
View repository →