Skip to main content
Glama
ja-roque

@dayby/mcp-server

by ja-roque
README.md
# @dayby/mcp-server

Post your dev progress to [DayBy.dev](https://dayby.dev) from Claude, Cursor, or any MCP client — with **local sanitization** so your company secrets never leave your machine.

## How It Works

```
draft_post → sanitized locally, never touches network
           → Claude shows you a clean preview
           → you approve
           → publish_post → DayBy API (sanitized content only)
```

**The raw context from your codebase never touches the network.** Only the sanitized, approved version gets published.

## Tools

| Tool | What it does | Touches network? |
|---|---|---|
| `draft_post` | Creates a sanitized draft from your description | No |
| `edit_draft` | Modify a draft before publishing | No |
| `check_content` | Dry-run: see what would get stripped | No |
| `publish_post` | Publish an approved draft to DayBy | Yes (sanitized only) |
| `list_posts` | List your recent DayBy posts | Yes |
| `get_post` | Fetch a single post by slug | Yes |
| `update_post` | Update title, content, or visibility | Yes |
| `delete_post` | Permanently delete a post | Yes |

## What Gets Stripped (Automatically)

- API keys, tokens, secrets
- AWS ARNs and access keys
- Private IP addresses
- Email addresses
- SSH keys, JWTs, GitHub tokens
- Database connection URLs
- File paths with usernames
- Plus anything you configure in blocklist

## Setup

### 1. Install

**Option A — npx (no install needed):**

```bash
npx @dayby/mcp-server
```

**Option B — global install:**

```bash
npm install -g @dayby/mcp-server
```

**Option C — from source:**

```bash
git clone https://github.com/ja-roque/dayby-mcp-server.git
cd dayby-mcp-server
npm install && npm run build
```

### 2. Authenticate

Run the auth command to connect your DayBy account:

```bash
dayby-mcp auth
```

This opens your browser for a one-click authorization. Your token is saved locally at `~/.dayby/credentials.json`.

To log out:

```bash
dayby-mcp auth --logout
```

Alternatively, you can set the `DAYBY_API_KEY` environment variable (from Settings > API on dayby.dev).

### 3. Add to your MCP client

**Claude Code (simplest):**

```bash
claude mcp add dayby -- dayby-mcp
```

Or with npx:

```bash
claude mcp add dayby -- npx @dayby/mcp-server
```

**Claude Desktop** (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "dayby": {
      "command": "npx",
      "args": ["@dayby/mcp-server"]
    }
  }
}
```

**Cursor** (`.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "dayby": {
      "command": "npx",
      "args": ["@dayby/mcp-server"]
    }
  }
}
```

### 4. Configure Sanitizer (Optional but Recommended)

Create `~/.dayby/sanitizer.json`:

```json
{
  "blockedTerms": ["YourCompany", "ProjectCodename"],
  "blockedDomains": ["internal.yourcompany.com"],
  "blockedNames": ["Your Boss Name"],
  "customPatterns": ["JIRA-\\d+", "INTERNAL-\\d+"]
}
```

## Usage Examples

**While coding:**
> "I just figured out how to use PostgreSQL partial indexes to optimize a multi-tenant query. Draft a DayBy post about it."

**After a PR:**
> "I built a rate limiter using Redis sorted sets today. Post it to DayBy."

**Quick check:**
> "Check if this text has any sensitive data before I post it."

Claude will use `draft_post` to sanitize locally, show you a preview, and only publish when you approve.

## Environment Variables

| Variable | Description | Default |
|---|---|---|
| `DAYBY_API_KEY` | Your DayBy API key (alternative to `dayby-mcp auth`) | (none) |
| `DAYBY_API_URL` | DayBy API URL | `https://dayby.dev` |
| `DAYBY_BLOCKED_TERMS` | Comma-separated blocked terms | (none) |
| `DAYBY_BLOCKED_DOMAINS` | Comma-separated blocked domains | (none) |

## Troubleshooting

**`dayby-mcp: command not found` after global install**

Your npm global bin isn't in your PATH. Run:

```bash
source ~/.bashrc
```

Or add this to your `~/.bashrc` / `~/.zshrc`:

```bash
export PATH="$(npm bin -g):$PATH"
```

Then restart your terminal or run `source ~/.bashrc` again.

**MCP server not showing up in Claude**

Restart Claude Code / Claude Desktop after adding the MCP config.

**`Not authenticated` errors**

Run `dayby-mcp auth` to connect your account, or set `DAYBY_API_KEY` in your environment.

## License

MIT

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation4/5

Most tools map cleanly to distinct lifecycle stages: draft, edit, publish, update, delete. The main potential confusion is between update_post and update_article, since both modify an existing post, though their descriptions differentiate general content updates from HTML article replacement.

Naming Consistency4/5

Tool names mostly follow a clear verb_noun snake_case pattern: list_posts, get_post, publish_post, update_post, delete_post, check_content. Minor deviations exist with edit_draft and update_article, which use different object nouns, and draft_post could be read as a noun phrase, but the overall convention is still predictable.

Tool Count5/5

Nine tools is a well-scoped size for a focused post-management server. Each tool covers a meaningful part of the drafting, publishing, updating, and deletion workflow without redundancy or excessive surface area.

Completeness4/5

The core lifecycle is covered well: draft, edit draft, publish, list, get, update, delete, and content checking. The main gap is that once a draft is created, there is no explicit way to list or retrieve saved drafts, which could make the edit_draft workflow harder to use.

Maintenance

ActivityInactive
ResponsivenessNo issues