Koskamo

Dear Claude MCP

An MCP server that monitors project management platforms like Linear, GitHub, Jira, GitLab, Notion, and Obsidian for the trigger phrase 'Dear Claude'. Upon detection, it spawns a local Claude Code instance to execute tasks such as code generation, reviews, or task creation, and posts results back to the originating platform while maintaining session persistence.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

Dear Claude MCP logo, by sns45Community listingLocal stdioSource reviewed; not executedPublished by sns45
Vendor documentation

What you can do with it

  • Spawn Claude Code instances from external platforms like Linear or GitHub
  • Execute code, reviews, or task creation based on issue context
  • Post results back to the originating platform
  • Persist sessions for multi-turn conversations

Source and maintenance

Community listingRegistry 1.2.0MIT
Last repository push
Latest release
v1.2.0
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

dear-claude 1.2.0

npm
dear-claude package definition
{
  "version": "1.2.0",
  "transport": "stdio",
  "identifier": "dear-claude",
  "registryType": "npm",
  "environmentVariables": [
    {
      "name": "DEAR_CLAUDE_PORT",
      "format": "string",
      "description": "HTTP server port for webhooks (default: 3334)"
    },
    {
      "name": "DEAR_CLAUDE_HOST",
      "format": "string",
      "description": "Bind address for the HTTP server (default: 127.0.0.1, loopback only)"
    },
    {
      "name": "DEAR_CLAUDE_DATA_DIR",
      "format": "string",
      "description": "Override the data directory (default: $XDG_DATA_HOME/dear-claude or ~/.local/share/dear-claude)"
    },
    {
      "name": "DEAR_CLAUDE_API_TOKEN",
      "format": "string",
      "description": "Token guarding the /api/* and /mcp control endpoints (auto-generated at <dataDir>/api-token if unset)"
    },
    {
      "name": "TAILSCALE_HOSTNAME",
      "format": "string",
      "description": "Override Tailscale hostname for webhook URLs (auto-detected if not set)"
    },
    {
      "name": "GITHUB_CLIENT_ID",
      "format": "string",
      "description": "GitHub OAuth App or GitHub App client ID"
    },
    {
      "name": "GITHUB_CLIENT_SECRET",
      "format": "string",
      "description": "GitHub OAuth App or GitHub App client secret"
    },
    {
      "name": "GITHUB_WEBHOOK_SECRET",
      "format": "string",
      "description": "GitHub webhook signature secret"
    },
    {
      "name": "GITHUB_ACCESS_TOKEN",
      "format": "string",
      "description": "GitHub personal access token (alternative to OAuth)"
    },
    {
      "name": "GITHUB_APP_ID",
      "format": "string",
      "description": "GitHub App ID (for installation-based auth)"
    },
    {
      "name": "GITHUB_APP_PRIVATE_KEY_PATH",
      "format": "string",
      "description": "Path to GitHub App private key PEM file"
    },
    {
      "name": "LINEAR_CLIENT_ID",
      "format": "string",
      "description": "Linear OAuth application client ID"
    },
    {
      "name": "LINEAR_CLIENT_SECRET",
      "format": "string",
      "description": "Linear OAuth application client secret"
    },
    {
      "name": "LINEAR_WEBHOOK_SECRET",
      "format": "string",
      "description": "Linear webhook signing secret"
    },
    {
      "name": "LINEAR_ACCESS_TOKEN",
      "format": "string",
      "description": "Linear personal API key (alternative to OAuth)"
    },
    {
      "name": "JIRA_DOMAIN",
      "format": "string",
      "description": "Jira Cloud domain (e.g. 'mycompany' for mycompany.atlassian.net)"
    },
    {
      "name": "JIRA_USER_EMAIL",
      "format": "string",
      "description": "Jira account email for API authentication"
    },
    {
      "name": "JIRA_API_TOKEN",
      "format": "string",
      "description": "Jira API token from id.atlassian.com"
    },
    {
      "name": "JIRA_WEBHOOK_SECRET",
      "format": "string",
      "description": "Shared secret for Jira webhook URL validation"
    },
    {
      "name": "GITLAB_ACCESS_TOKEN",
      "format": "string",
      "description": "GitLab personal or project access token"
    },
    {
      "name": "GITLAB_WEBHOOK_SECRET",
      "format": "string",
      "description": "GitLab webhook secret token"
    },
    {
      "name": "NOTION_CLIENT_ID",
      "format": "string",
      "description": "Notion OAuth integration client ID"
    },
    {
      "name": "NOTION_CLIENT_SECRET",
      "format": "string",
      "description": "Notion OAuth integration client secret"
    },
    {
      "name": "NOTION_ACCESS_TOKEN",
      "format": "string",
      "description": "Notion internal integration token (alternative to OAuth)"
    },
    {
      "name": "NOTION_WEBHOOK_SECRET",
      "format": "string",
      "description": "Notion webhook verification secret"
    },
    {
      "name": "OBSIDIAN_VAULT_PATH",
      "format": "string",
      "description": "Absolute path to Obsidian vault directory for file watching"
    },
    {
      "name": "GIPHY_API_KEY",
      "format": "string",
      "description": "Giphy API key for embedding GIF reactions in responses"
    }
  ]
}

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · repository · passed · metadata changed · updated
  • · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "dear-claude-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "dear-claude@1.2.0"
      ],
      "env": {
        "DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
        "DEAR_CLAUDE_HOST": "<YOUR_DEAR_CLAUDE_HOST>",
        "DEAR_CLAUDE_DATA_DIR": "<YOUR_DEAR_CLAUDE_DATA_DIR>",
        "DEAR_CLAUDE_API_TOKEN": "<YOUR_DEAR_CLAUDE_API_TOKEN>",
        "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>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "dear-claude-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "dear-claude@1.2.0"
      ],
      "env": {
        "DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
        "DEAR_CLAUDE_HOST": "<YOUR_DEAR_CLAUDE_HOST>",
        "DEAR_CLAUDE_DATA_DIR": "<YOUR_DEAR_CLAUDE_DATA_DIR>",
        "DEAR_CLAUDE_API_TOKEN": "<YOUR_DEAR_CLAUDE_API_TOKEN>",
        "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>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "dear-claude-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "dear-claude@1.2.0"
      ],
      "env": {
        "DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
        "DEAR_CLAUDE_HOST": "<YOUR_DEAR_CLAUDE_HOST>",
        "DEAR_CLAUDE_DATA_DIR": "<YOUR_DEAR_CLAUDE_DATA_DIR>",
        "DEAR_CLAUDE_API_TOKEN": "<YOUR_DEAR_CLAUDE_API_TOKEN>",
        "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 Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "dear-claude-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "dear-claude@1.2.0"
      ],
      "env": {
        "DEAR_CLAUDE_PORT": "<YOUR_DEAR_CLAUDE_PORT>",
        "DEAR_CLAUDE_HOST": "<YOUR_DEAR_CLAUDE_HOST>",
        "DEAR_CLAUDE_DATA_DIR": "<YOUR_DEAR_CLAUDE_DATA_DIR>",
        "DEAR_CLAUDE_API_TOKEN": "<YOUR_DEAR_CLAUDE_API_TOKEN>",
        "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>"
      }
    }
  }
}

Let your agent find its tools

Find servers like Dear Claude MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.