causly-server 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -7
- package/README.md +290 -118
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here.
|
|
4
4
|
|
|
5
|
-
## [
|
|
6
|
-
|
|
7
|
-
### Added
|
|
8
|
-
- Opt-in BoundaryAttest Interop Profile v0.2 `server_attested` receipts for the `ship_change`, `verify_ci_fix`, and `deploy_project` workflow boundary, with RFC 8785/JCS redacted evidence hashes, independent expected-key verification, and focused tests. BoundaryAttest v0.1 remains legacy-only.
|
|
5
|
+
## [1.5.1]
|
|
9
6
|
|
|
10
7
|
### Changed
|
|
11
|
-
-
|
|
8
|
+
- New README for the npm package: install-first quick start, architecture diagram, demo GIF, tool pack tables, configuration, Google setup, security and privacy, troubleshooting and FAQ.
|
|
9
|
+
- `.env.example`: the Google setup comments now describe the `causly-server login google` flow.
|
|
12
10
|
|
|
13
11
|
## [1.5.0]
|
|
14
12
|
|
|
15
13
|
### Added
|
|
14
|
+
- **npm package and CLI**: `npm install -g causly-server`, then `causly-server init | setup | keys | doctor [--test] | status | toolsets | backup | restore | login google | remove`. `init` adds the server to Claude Desktop, Cursor and Windsurf.
|
|
15
|
+
- **Lazy tool packs**: files, directory, command and project load first; other packs load on demand. `search_tools`, `load_toolset` and `use_tool` let an agent find and call any tool without restarting the editor. `toolsets` controls which packs load at startup.
|
|
16
|
+
- **Co-founder packs**: research (2 tools), leads (3), SEO and content (4, including Search Console), pipeline (9, local SQLite), calendar (8), Telegram (5), Linear (7), meetings (9: Groq Whisper transcription, action items, deal and calendar links, call prep) and reminders (3, delivered to Telegram).
|
|
17
|
+
- **Safety and local data**: opt-in workspace limit (`init --workspace`), approval gate for risky actions, and a local SQLite store under `~/.causly` with `backup` and `restore`.
|
|
18
|
+
- **Google sign-in**: `causly-server login google` for Gmail, Calendar and Search Console.
|
|
19
|
+
- Opt-in BoundaryAttest Interop Profile v0.2 `server_attested` receipts for the `ship_change`, `verify_ci_fix`, and `deploy_project` workflow boundary, with RFC 8785/JCS redacted evidence hashes, independent expected-key verification, and focused tests. BoundaryAttest v0.1 remains legacy-only.
|
|
16
20
|
- **Notion — new category, 15 tools**: search, page/database CRUD, block append/read/update/delete, comments, users. All live-tested against a real shared Notion page.
|
|
17
21
|
- **Terraform — new category, 20 tools**: full lifecycle (init/validate/fmt/plan/apply/destroy/show/output/workspace), state management (state_list/show/mv/rm/pull/import/taint/untaint), graph/providers, and a CI/CD hook (`terraform_plan_comment` — posts a plan summary as a GitHub PR comment). 17/20 live-tested.
|
|
18
22
|
- **Docker — new category, 18 tools**: ps/images/build/run/stop/start/restart/rm/rmi/logs/inspect/exec/stats/push/pull/compose up-down. Cross-platform — tries `docker` directly first, falls back to `wsl docker` on Windows-only-WSL setups, with automatic Windows-path-to-WSL-path translation for build context, volumes, and compose working directory. 17/18 live-tested.
|
|
@@ -20,12 +24,13 @@ All notable changes to this project are documented here.
|
|
|
20
24
|
- **Local encrypted secrets manager — new category, 6 tools**: set/get/list/delete/rotate_key/generate_key. AES-256-GCM, local file store, no external service required. All 6 live-tested including a full key-rotation cycle.
|
|
21
25
|
- **Sentry monitoring — new category, 8 tools**: list_projects/list_issues/search_issues/get_issue/resolve_issue/ignore_issue/get_project_stats/add_comment. 5/8 live-tested.
|
|
22
26
|
|
|
23
|
-
Total:
|
|
27
|
+
Total: 230+ tools, up from 106.
|
|
24
28
|
|
|
25
29
|
### Changed
|
|
30
|
+
- The central wrapper now owns each operation ID and supplies it to the existing audit logger so an optional receipt and normal audit event share one correlation identity. Approval and security semantics are unchanged.
|
|
26
31
|
- **License: PolyForm Noncommercial 1.0.0 → MIT.** Added `"license": "MIT"` to `package.json`.
|
|
27
32
|
- Removed the temporary `register/` staging folder now that all tool registrations live directly in `index.js`.
|
|
28
|
-
-
|
|
33
|
+
- Removed the legacy `setup.js` helper (`causly-server init` replaces it) and moved the docs site and landing code out of this repo.
|
|
29
34
|
- Updated `CONTRIBUTING.md` and `ROADMAP.md` to reflect the new tool categories and the current Azure/GCP/AWS-deferred stance.
|
|
30
35
|
|
|
31
36
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,133 +1,174 @@
|
|
|
1
|
-
# Causly Server
|
|
1
|
+
# Causly Server
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[](./LICENSE)
|
|
5
|
-
[](https://github.com/KNIHAL/causly-server/actions/workflows/ci.yml)
|
|
6
|
-
[](./CONTRIBUTING.md)
|
|
3
|
+
**The open-source MCP server that turns any AI agent into your technical co-founder.**
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
<p>
|
|
6
|
+
<a href="https://www.npmjs.com/package/causly-server"><img src="https://img.shields.io/npm/v/causly-server.svg?color=FF9A1F" alt="npm version"></a>
|
|
7
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT license"></a>
|
|
8
|
+
<a href="https://github.com/KNIHAL/causly-server/actions/workflows/ci.yml"><img src="https://github.com/KNIHAL/causly-server/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
9
|
+
<img src="https://img.shields.io/badge/node-%E2%89%A5%2020-339933.svg" alt="Node 20 or newer">
|
|
10
|
+
<a href="./CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome"></a>
|
|
11
|
+
</p>
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Everything runs on your machine. Your keys, your data, your approval for anything risky.
|
|
13
|
-
|
|
14
|
-
## See It In Action
|
|
15
|
-
|
|
16
|
-
[Working Demo](https://github.com/user-attachments/assets/7f4f33e8-2cd4-4c99-ada0-35653bbaa4c4)
|
|
17
|
-
|
|
18
|
-
<img width="1920" height="1020" alt="Causly Server screenshot" src="https://github.com/user-attachments/assets/e9fb7c22-0a0b-4109-a44d-d2106912389f" />
|
|
19
|
-
|
|
20
|
-
## What You Can Ask
|
|
21
|
-
|
|
22
|
-
Once it is installed, just talk to your agent:
|
|
23
|
-
|
|
24
|
-
- "Find companies hiring React developers and add the best three to my pipeline."
|
|
25
|
-
- "Save notes from my call with Acme: they want a demo next week, follow up on Friday."
|
|
26
|
-
- "What is due this week? Include meeting action items and reminders."
|
|
27
|
-
- "Prep me for my next meeting."
|
|
28
|
-
- "Ship this change: run the checks, open a pull request, and tell me when CI is green."
|
|
29
|
-
- "Audit this page for SEO and suggest keywords."
|
|
30
|
-
- "Find a free slot with this lead on Thursday and send the invite."
|
|
31
|
-
|
|
32
|
-
## Install
|
|
33
|
-
|
|
34
|
-
Requires Node.js 20 or newer.
|
|
13
|
+
Most agents can write text. Causly Server gives them hands: they ship code, hunt for clients, track deals, take meeting notes, handle your calendar and remind you on Telegram, all from one conversation, all on your own machine.
|
|
35
14
|
|
|
36
15
|
```bash
|
|
37
16
|
npm install -g causly-server
|
|
38
17
|
causly-server init
|
|
39
18
|
```
|
|
40
19
|
|
|
41
|
-
|
|
20
|
+
<p align="center">
|
|
21
|
+
<img src="https://raw.githubusercontent.com/KNIHAL/causly-server/master/docs/images/demo.gif" alt="Install, init and doctor in under ten seconds" width="85%">
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
## Contents
|
|
25
|
+
|
|
26
|
+
- [Why Causly Server](#why-causly-server)
|
|
27
|
+
- [Quick start](#quick-start)
|
|
28
|
+
- [What you can ask](#what-you-can-ask)
|
|
29
|
+
- [How it works](#how-it-works)
|
|
30
|
+
- [Tool packs](#tool-packs)
|
|
31
|
+
- [Workflow tools](#workflow-tools)
|
|
32
|
+
- [Configuration](#configuration)
|
|
33
|
+
- [Google setup](#google-setup-gmail-calendar-search-console)
|
|
34
|
+
- [Works with](#works-with)
|
|
35
|
+
- [Security and privacy](#security-and-privacy)
|
|
36
|
+
- [Command reference](#command-reference)
|
|
37
|
+
- [Troubleshooting](#troubleshooting)
|
|
38
|
+
- [FAQ](#faq)
|
|
39
|
+
- [Compatibility](#compatibility)
|
|
40
|
+
- [Contributing, roadmap, license](#contributing-roadmap-license)
|
|
41
|
+
|
|
42
|
+
## Why Causly Server
|
|
43
|
+
|
|
44
|
+
A founder's week is not only code. It is also finding clients, following up, remembering what was promised in a call, and shipping without breaking things. Causly Server puts all of that behind one MCP server.
|
|
45
|
+
|
|
46
|
+
- **One server for build, sell, operate and grow.** Git, GitHub, CI and deploys, but also leads, a sales pipeline, meeting notes, calendar, reminders and SEO.
|
|
47
|
+
- **Memory that survives the chat.** Your pipeline, meetings and reminders live in a local SQLite file, so the agent can pick up tomorrow where it stopped today.
|
|
48
|
+
- **Local-first.** Keys and data stay on your machine. There is no Causly cloud in the loop.
|
|
49
|
+
- **Safe by default.** Risky actions need explicit confirmation, file access can be limited to one folder, and secrets are redacted from logs.
|
|
50
|
+
- **Light on your agent's context.** Tools load in packs on demand instead of flooding the agent with hundreds of definitions.
|
|
51
|
+
- **One command setup.** `init` finds Claude Desktop, Cursor and Windsurf and wires them up.
|
|
52
|
+
|
|
53
|
+
## Quick start
|
|
54
|
+
|
|
55
|
+
Requires Node.js 20 or newer.
|
|
42
56
|
|
|
43
|
-
|
|
57
|
+
**1. Install**
|
|
44
58
|
|
|
45
59
|
```bash
|
|
46
|
-
|
|
47
|
-
causly-server init --workspace D:\my-project # limit file tools to one folder
|
|
48
|
-
causly-server init --toolsets research,pipeline,meetings # choose startup packs
|
|
60
|
+
npm install -g causly-server
|
|
49
61
|
```
|
|
50
62
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
You only need keys for the services you actually use.
|
|
63
|
+
**2. Connect your editors**
|
|
54
64
|
|
|
55
65
|
```bash
|
|
56
|
-
causly-server
|
|
57
|
-
causly-server doctor --test # verify every configured service
|
|
58
|
-
causly-server status # one screen: editors, keys, pipeline, reminders, updates
|
|
66
|
+
causly-server init
|
|
59
67
|
```
|
|
60
68
|
|
|
61
|
-
|
|
69
|
+
`init` adds Causly Server to Claude Desktop, Cursor and Windsurf, whichever you have. It also prints the one-line command for Claude Code. Restart the editor afterwards.
|
|
62
70
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Google needs a one-time OAuth client that you own. It takes about five minutes.
|
|
66
|
-
|
|
67
|
-
1. Open [Google Cloud Console](https://console.cloud.google.com), create or pick a project.
|
|
68
|
-
2. Enable the APIs you want: **Gmail API**, **Google Calendar API**, and optionally **Google Search Console API**.
|
|
69
|
-
3. Go to **Google Auth Platform**. Under **Branding**, fill in the app name and your support email. Under **Audience**, choose **External** and add your own Google account as a test user.
|
|
70
|
-
4. Go to **Clients → Create client** and choose **Desktop app** as the application type. (A "Web application" client fails with `redirect_uri_mismatch`.) Copy the client ID and secret.
|
|
71
|
-
5. Save them in Causly: `causly-server setup`, or `causly-server keys set GMAIL_CLIENT_ID` and `causly-server keys set GMAIL_CLIENT_SECRET`.
|
|
72
|
-
6. Sign in once in your browser:
|
|
71
|
+
**3. Check everything**
|
|
73
72
|
|
|
74
73
|
```bash
|
|
75
|
-
causly-server
|
|
76
|
-
causly-server login google all # also Search Console
|
|
74
|
+
causly-server doctor
|
|
77
75
|
```
|
|
78
76
|
|
|
79
|
-
|
|
77
|
+
**4. Add keys for the services you use (optional)**
|
|
80
78
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## Tool Packs
|
|
79
|
+
```bash
|
|
80
|
+
causly-server setup
|
|
81
|
+
```
|
|
86
82
|
|
|
87
|
-
|
|
83
|
+
Files, git, shell, Docker and Terraform work with no keys at all. Add keys only for the services you want. Each key is checked live as you enter it.
|
|
88
84
|
|
|
89
|
-
|
|
90
|
-
| --- | --- |
|
|
91
|
-
| **files, directory, command, project** | Read, write, edit and search files; run commands with safety checks; detect your stack and run build, test, lint and typecheck |
|
|
92
|
-
| **research** | Search the web and read pages as clean text |
|
|
93
|
-
| **leads** | Find companies hiring (Hacker News, remote job boards) and public company contact details |
|
|
94
|
-
| **pipeline** | Local sales pipeline: leads, deals, contacts, activity log, report, CSV export |
|
|
95
|
-
| **meetings** | Transcribe recordings, save summaries, track action items, link them to deals and calendar events, prep for calls |
|
|
96
|
-
| **reminders** | Follow-ups saved locally; ask what is due |
|
|
97
|
-
| **seo** | Keyword ideas, page audit, draft check, Search Console |
|
|
85
|
+
Useful `init` options:
|
|
98
86
|
|
|
99
|
-
|
|
87
|
+
```bash
|
|
88
|
+
causly-server init --client cursor # pick editors instead of auto-detecting
|
|
89
|
+
causly-server init --workspace D:\my-project # limit file tools to one folder
|
|
90
|
+
causly-server init --toolsets research,pipeline,meetings # choose which packs load at startup
|
|
91
|
+
```
|
|
100
92
|
|
|
101
|
-
|
|
102
|
-
| --- | --- |
|
|
103
|
-
| **calendar, gmail** | Events, free/busy, find meeting slots; search, read, send, reply, forward |
|
|
104
|
-
| **telegram** | Alert yourself, read messages sent to your bot |
|
|
105
|
-
| **git, github, workflow** | Full Git; repos, issues, pull requests, reviews, Actions; `ship_change`, `fix_ci`, `verify_ci_fix`, `deploy_project` |
|
|
106
|
-
| **vercel, docker, terraform** | Deployments and health checks; containers and Compose; plan, apply, state |
|
|
107
|
-
| **database, supabase** | Postgres and MySQL queries and schema; Supabase projects and SQL |
|
|
108
|
-
| **slack, notion, linear** | Channels and threads; pages and databases; issues |
|
|
109
|
-
| **sentry, secrets** | Issue triage; encrypted local secrets store |
|
|
93
|
+
## What you can ask
|
|
110
94
|
|
|
111
|
-
|
|
95
|
+
- "Find companies hiring React developers and add the best three to my pipeline."
|
|
96
|
+
- "Save notes from my call with Acme: they want a demo next week, follow up on Friday."
|
|
97
|
+
- "What is due this week? Include meeting action items and reminders."
|
|
98
|
+
- "Prep me for my next meeting." (needs Google Calendar)
|
|
99
|
+
- "Transcribe this recording and list the action items." (needs a Groq key)
|
|
100
|
+
- "Ship this change: run the checks, open a pull request, tell me when CI is green."
|
|
101
|
+
- "Audit this page for SEO and suggest keywords."
|
|
102
|
+
- "Find a free slot on Thursday and create the event."
|
|
103
|
+
|
|
104
|
+
## How it works
|
|
105
|
+
|
|
106
|
+
<p align="center">
|
|
107
|
+
<img src="https://raw.githubusercontent.com/KNIHAL/causly-server/master/docs/images/architecture.png" alt="Architecture: your AI agent talks MCP to Causly Server, which has a tool router, a safety layer, tool packs and a local store, and calls your services over their APIs." width="100%">
|
|
108
|
+
</p>
|
|
109
|
+
|
|
110
|
+
Your agent talks to Causly Server over MCP (stdio). Inside the server:
|
|
111
|
+
|
|
112
|
+
1. **Tool router.** `search_tools`, `load_toolset` and `use_tool` let the agent find a tool and call it by name. Packs load on demand, and `use_tool` works even in editors that do not refresh their tool list mid-chat, so you do not need to restart.
|
|
113
|
+
2. **Safety layer.** Permission levels, confirmation for risky actions, an optional workspace limit, secret redaction and an activity log.
|
|
114
|
+
3. **Tool packs.** About 230 tools grouped into packs (below).
|
|
115
|
+
4. **Local store.** SQLite for pipeline, meetings and reminders in `~/.causly`, encrypted secrets, and your API keys in `~/.causly/.env`.
|
|
116
|
+
5. **Your services.** GitHub, Vercel, Docker, Terraform, Postgres, Slack, Notion, Linear, Gmail, Google Calendar, Telegram and more, reached with your own keys.
|
|
117
|
+
|
|
118
|
+
## Tool packs
|
|
119
|
+
|
|
120
|
+
These packs load at startup by default:
|
|
121
|
+
|
|
122
|
+
| Pack | Tools | What it does |
|
|
123
|
+
| --- | --- | --- |
|
|
124
|
+
| files | 9 | Read, write, edit, copy, move and inspect files |
|
|
125
|
+
| directory | 5 | List, create and delete directories; search file names |
|
|
126
|
+
| command | 1 | Run shell commands with safety checks |
|
|
127
|
+
| project | 7 | Detect project type and health; run build, tests, lint and typecheck |
|
|
128
|
+
| research | 2 | Search the web and read pages as clean text |
|
|
129
|
+
| leads | 3 | Find companies hiring (Hacker News, remote job boards) and public company contact details |
|
|
130
|
+
| pipeline | 9 | Local sales pipeline: leads, deals, contacts, activity log, report, CSV export |
|
|
131
|
+
| meetings | 9 | Transcribe recordings, save summaries, track action items, link to deals and calendar, prep for calls |
|
|
132
|
+
| reminders | 3 | Follow-ups saved locally; ask what is due |
|
|
133
|
+
|
|
134
|
+
These load on demand, or you can add them to startup with `causly-server toolsets add <name>`:
|
|
135
|
+
|
|
136
|
+
| Pack | Tools | What it does |
|
|
137
|
+
| --- | --- | --- |
|
|
138
|
+
| calendar | 8 | Google Calendar: events, free/busy, find meeting slots, create, update, delete |
|
|
139
|
+
| gmail | 8 | Search, read, send, reply and forward |
|
|
140
|
+
| telegram | 5 | Alert yourself, read messages sent to your bot |
|
|
141
|
+
| seo | 4 | Keyword ideas, page audit, draft check, Search Console |
|
|
142
|
+
| git | 20 | Status, diff, commit, branch, merge, stash, tags, remotes |
|
|
143
|
+
| github | 27 | Repos, issues, pull requests, reviews, Actions |
|
|
144
|
+
| workflow | 4 | `ship_change`, `fix_ci`, `verify_ci_fix`, `deploy_project` |
|
|
145
|
+
| vercel | 11 | Projects, deployments, HTTP health checks |
|
|
146
|
+
| docker | 18 | Build, run, logs, images, exec, Compose |
|
|
147
|
+
| terraform | 20 | Init, plan, apply, state, workspaces, PR plan comments |
|
|
148
|
+
| database | 8 | Postgres and MySQL queries and schema inspection |
|
|
149
|
+
| supabase | 6 | Projects, organizations and SQL |
|
|
150
|
+
| slack | 8 | Channels, messages and threads |
|
|
151
|
+
| notion | 15 | Pages, databases, blocks and comments |
|
|
152
|
+
| linear | 7 | List, read, create, update and comment on issues |
|
|
153
|
+
| sentry | 8 | Projects and issues |
|
|
154
|
+
| secrets | 6 | Encrypted local secrets store |
|
|
155
|
+
|
|
156
|
+
Manage startup packs:
|
|
112
157
|
|
|
113
158
|
```bash
|
|
114
|
-
causly-server toolsets
|
|
159
|
+
causly-server toolsets # show what loads at startup
|
|
115
160
|
causly-server toolsets add github,gmail
|
|
116
161
|
causly-server toolsets remove seo
|
|
117
|
-
causly-server toolsets reset
|
|
162
|
+
causly-server toolsets reset # back to the defaults
|
|
118
163
|
```
|
|
119
164
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
Some editors do not refresh their tool list mid-chat. `use_tool` lets your agent call any tool by name, even one that is not loaded yet; the pack loads automatically and every safety check still applies.
|
|
123
|
-
|
|
124
|
-
## Workflow Tools
|
|
165
|
+
## Workflow tools
|
|
125
166
|
|
|
126
167
|
Single tools are building blocks. These combine them into verified outcomes:
|
|
127
168
|
|
|
128
|
-
- **`ship_change`**: inspects changes, creates a branch, runs project checks, commits, pushes
|
|
169
|
+
- **`ship_change`**: inspects changes, creates a branch, runs project checks, commits, pushes and opens a pull request.
|
|
129
170
|
- **`fix_ci`**: finds a failing GitHub Actions run and fetches the real failure output.
|
|
130
|
-
- **`verify_ci_fix`**: commits and pushes the fix, polls the workflow
|
|
171
|
+
- **`verify_ci_fix`**: commits and pushes the fix, polls the workflow and confirms CI is green.
|
|
131
172
|
- **`deploy_project`**: checks health, runs tests and build, deploys, polls, and HTTP-verifies the live URL.
|
|
132
173
|
|
|
133
174
|
```mermaid
|
|
@@ -145,56 +186,187 @@ flowchart TD
|
|
|
145
186
|
J --> K["Shipped"]
|
|
146
187
|
```
|
|
147
188
|
|
|
148
|
-
##
|
|
189
|
+
## Configuration
|
|
190
|
+
|
|
191
|
+
Settings live in `~/.causly/.env` (on Windows, `C:\Users\<you>\.causly\.env`). Manage them with the CLI instead of editing by hand:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
causly-server setup # step by step, each key checked live
|
|
195
|
+
causly-server keys list # which keys are set (never the full value)
|
|
196
|
+
causly-server keys set NAME # hidden prompt
|
|
197
|
+
causly-server keys unset NAME
|
|
198
|
+
causly-server doctor --test # check every configured service live
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Changes are picked up without restarting your editor.
|
|
202
|
+
|
|
203
|
+
| Service | Variables | Notes |
|
|
204
|
+
| --- | --- | --- |
|
|
205
|
+
| GitHub | `GITHUB_TOKEN` | Fine-grained token: contents, issues, pull requests |
|
|
206
|
+
| Vercel | `VERCEL_TOKEN` | Project must be Git-linked for deploys |
|
|
207
|
+
| Supabase | `SUPABASE_ACCESS_TOKEN` | Management API |
|
|
208
|
+
| Slack | `SLACK_BOT_TOKEN` | `search:read` needs a user token |
|
|
209
|
+
| Notion | `NOTION_API_KEY` | Share each page or database with the integration |
|
|
210
|
+
| Linear | `LINEAR_API_KEY` | Personal API key |
|
|
211
|
+
| Sentry | `SENTRY_AUTH_TOKEN` | Add `event:write` to resolve or comment |
|
|
212
|
+
| Gmail | `GMAIL_CLIENT_ID`, `GMAIL_CLIENT_SECRET`, `GMAIL_REFRESH_TOKEN` | Run `causly-server login google` |
|
|
213
|
+
| Google Calendar | `CALENDAR_REFRESH_TOKEN` | Same Google client as Gmail |
|
|
214
|
+
| Telegram | `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID` | Create a bot with @BotFather, message it, then find your chat id with `telegram_get_updates` |
|
|
215
|
+
| Groq (meeting transcription) | `GROQ_API_KEY` | Free tier available. Audio is uploaded to Groq only when you confirm a transcription |
|
|
216
|
+
| Secrets manager | `SECRETS_MASTER_KEY` | 32-byte hex key you generate and keep |
|
|
217
|
+
| Timezone (optional) | `CAUSLY_TIMEZONE` | IANA name, e.g. `Asia/Kolkata`; defaults to your machine's zone |
|
|
218
|
+
|
|
219
|
+
Docker and Terraform need no key, only the CLI on your `PATH`. Postgres and MySQL take a connection string on each call. Transcribing recordings over 25 MB needs `ffmpeg` on your `PATH`.
|
|
149
220
|
|
|
150
|
-
|
|
221
|
+
## Google setup (Gmail, Calendar, Search Console)
|
|
222
|
+
|
|
223
|
+
Google needs a one-time OAuth client that you own. It takes about five minutes.
|
|
224
|
+
|
|
225
|
+
1. Open [Google Cloud Console](https://console.cloud.google.com) and create or pick a project.
|
|
226
|
+
2. Enable the APIs you want: **Gmail API**, **Google Calendar API**, and optionally **Google Search Console API**.
|
|
227
|
+
3. Open **Google Auth Platform**. Under **Branding**, fill in the app name and your support email. Under **Audience**, choose **External** and add your own Google account as a test user.
|
|
228
|
+
4. Under **Clients**, choose **Create client** and pick **Desktop app**. A "Web application" client fails with `redirect_uri_mismatch`. Copy the client ID and secret.
|
|
229
|
+
5. Save them in Causly: run `causly-server setup`, or `causly-server keys set GMAIL_CLIENT_ID` and `causly-server keys set GMAIL_CLIENT_SECRET`.
|
|
230
|
+
6. Sign in once in your browser:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
causly-server login google # Gmail and Calendar
|
|
234
|
+
causly-server login google all # also Search Console
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Avoid the 7-day expiry.** While your Google app is in *Testing*, Google expires the sign-in token every 7 days. Renew it any time with `causly-server login google`, or stop the expiry for good: in **Google Auth Platform → Audience**, click **Publish app** (In production). The Branding page from step 3 must be filled in first. For personal use you do not need Google verification; at sign-in you will see an "unverified app" warning, which is expected for your own client: choose **Advanced**, then continue.
|
|
238
|
+
|
|
239
|
+
## Works with
|
|
240
|
+
|
|
241
|
+
| Client | Setup |
|
|
242
|
+
| --- | --- |
|
|
243
|
+
| Claude Desktop | `causly-server init` |
|
|
244
|
+
| Cursor | `causly-server init` |
|
|
245
|
+
| Windsurf | `causly-server init` |
|
|
246
|
+
| Claude Code | `init` prints the command: `claude mcp add causly-server -- node <path>/index.js` |
|
|
247
|
+
| Any MCP client or agent framework | Spawn `causly-server` over stdio |
|
|
248
|
+
|
|
249
|
+
Tested with Claude Desktop, Cursor and Windsurf (the same `use_tool` call on a real repository in each), a plain JavaScript MCP client, and LangChain (JS) through `@langchain/mcp-adapters`.
|
|
250
|
+
|
|
251
|
+
A minimal custom agent in JavaScript:
|
|
252
|
+
|
|
253
|
+
```js
|
|
254
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
255
|
+
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
256
|
+
|
|
257
|
+
const client = new Client({ name: "my-agent", version: "1.0.0" });
|
|
258
|
+
// Find the install folder with: npm root -g
|
|
259
|
+
await client.connect(new StdioClientTransport({
|
|
260
|
+
command: "node",
|
|
261
|
+
args: ["<npm-root>/causly-server/index.js"],
|
|
262
|
+
}));
|
|
263
|
+
|
|
264
|
+
const { tools } = await client.listTools(); // search_tools, load_toolset, use_tool, ...
|
|
265
|
+
const result = await client.callTool({
|
|
266
|
+
name: "use_tool",
|
|
267
|
+
arguments: { tool: "git_status", arguments: { repo_path: "." } },
|
|
268
|
+
});
|
|
269
|
+
console.log(result.content[0].text);
|
|
270
|
+
```
|
|
151
271
|
|
|
152
|
-
## Security
|
|
272
|
+
## Security and privacy
|
|
153
273
|
|
|
154
|
-
Causly can touch your files, repositories and infrastructure, so the controls live in the server itself.
|
|
274
|
+
Causly can touch your files, repositories and infrastructure, so the controls live in the server itself. See [SECURITY.md](./SECURITY.md) to report a vulnerability.
|
|
155
275
|
|
|
156
|
-
- **Permission levels
|
|
157
|
-
- **Workspace limit
|
|
158
|
-
- **
|
|
159
|
-
- **
|
|
160
|
-
- **
|
|
161
|
-
- **
|
|
162
|
-
- **
|
|
163
|
-
|
|
164
|
-
|
|
276
|
+
- **Permission levels.** Every tool is `READ`, `LOW`, `MEDIUM`, `HIGH` or `DESTRUCTIVE`. `HIGH` and `DESTRUCTIVE` actions (deploys, merges, shell commands, deletes, raw SQL, Terraform apply and destroy, Docker removal) need an explicit `confirm: true`.
|
|
277
|
+
- **Workspace limit.** `causly-server init --workspace <folder>` restricts file and command tools to one folder.
|
|
278
|
+
- **Command risk checks.** Drive wipes, formatting and shutdown commands are blocked. Force-pushes, `DROP TABLE`, `curl | bash` and `sudo` are flagged.
|
|
279
|
+
- **Path protection.** Writes and deletes inside protected system directories are blocked.
|
|
280
|
+
- **Secret redaction.** Tokens, passwords and API keys are redacted before anything is written to logs.
|
|
281
|
+
- **Local encrypted secrets.** The built-in secrets manager uses AES-256-GCM with a key you control. No external vault needed.
|
|
282
|
+
- **Activity log.** Every call is recorded in `logs/activity.log` as structured JSONL (timestamp, operation ID, risk level, status, redacted input, duration).
|
|
283
|
+
|
|
284
|
+
**Privacy.** Causly Server has no Causly cloud and no Causly account. Your pipeline, meetings and reminders are stored in a local SQLite file, and your keys stay in `~/.causly/.env`. Data leaves your machine only when you use a service you configured, for example GitHub, Gmail, Telegram, or Groq for transcription, and only to that service.
|
|
165
285
|
|
|
166
286
|
Optional BoundaryAttest receipts for `ship_change`, `verify_ci_fix` and `deploy_project` are described in [the docs](https://agenv.causly.in/docs/server/tools/boundaryattest).
|
|
167
287
|
|
|
168
|
-
## Command
|
|
288
|
+
## Command reference
|
|
169
289
|
|
|
170
290
|
```text
|
|
171
|
-
causly-server
|
|
291
|
+
causly-server Start the MCP server (your editor runs this)
|
|
292
|
+
causly-server init Set up Claude Desktop, Cursor and Windsurf
|
|
293
|
+
--client claude|cursor|windsurf|all
|
|
294
|
+
--workspace <folder>
|
|
295
|
+
--toolsets <list>
|
|
296
|
+
--no-setup
|
|
297
|
+
causly-server status One screen: editors, keys, pipeline, reminders, backup, updates
|
|
298
|
+
causly-server doctor [--test] Check your setup; --test also checks every key live
|
|
299
|
+
causly-server setup [service] Add API keys step by step
|
|
172
300
|
causly-server keys list | set NAME | unset NAME | open
|
|
173
301
|
causly-server login google [gmail,calendar,gsc|all]
|
|
174
302
|
causly-server toolsets [add|remove|reset]
|
|
175
|
-
causly-server backup [file]
|
|
176
|
-
causly-server
|
|
303
|
+
causly-server backup [file] Save a copy of your pipeline, meetings and reminders
|
|
304
|
+
causly-server restore <file> [--yes] Put a backup back (current data is kept as a copy)
|
|
305
|
+
causly-server remove [--client <name>] Remove it from your editors
|
|
306
|
+
causly-server --version
|
|
177
307
|
```
|
|
178
308
|
|
|
179
|
-
##
|
|
309
|
+
## Troubleshooting
|
|
310
|
+
|
|
311
|
+
Start with `causly-server doctor`. It tells you what is missing.
|
|
312
|
+
|
|
313
|
+
| Problem | Fix |
|
|
314
|
+
| --- | --- |
|
|
315
|
+
| `causly-server` is not recognized after install | Open a new terminal so your `PATH` refreshes. Check that your npm global folder (`npm config get prefix`) is on `PATH`. |
|
|
316
|
+
| Editor does not show the tools after `init` | Quit the editor completely (including the system tray) and open it again. |
|
|
317
|
+
| The agent cannot see a tool that is not loaded | Ask it to call the tool with `use_tool`, or run `causly-server toolsets add <pack>`. |
|
|
318
|
+
| Gmail or Calendar stopped working | Your Google token expired (7 days in Testing mode). Run `causly-server login google`. |
|
|
319
|
+
| `redirect_uri_mismatch` during Google sign-in | Your OAuth client is a "Web application". Create a **Desktop app** client instead. |
|
|
320
|
+
| A reminder never reached Telegram | Set both `TELEGRAM_BOT_TOKEN` and `TELEGRAM_CHAT_ID`, then run `causly-server doctor --test`. |
|
|
321
|
+
| Transcription fails on a large file | Install `ffmpeg` and make sure it is on your `PATH`. Files above 25 MB are compressed first. |
|
|
322
|
+
| `restore` cannot replace the data file | Quit Claude Desktop, Cursor and any app using Causly Server, then run it again. |
|
|
323
|
+
| A file or command is refused | A workspace limit may be on. Check `causly-server doctor`, or re-run `init` with the folder you want. |
|
|
324
|
+
|
|
325
|
+
## FAQ
|
|
326
|
+
|
|
327
|
+
**Is it free?** Yes. It is MIT licensed, including for commercial use. The services you connect have their own pricing.
|
|
328
|
+
|
|
329
|
+
**Does my data go to Causly?** No. There is no Causly cloud in the loop. See [Security and privacy](#security-and-privacy).
|
|
330
|
+
|
|
331
|
+
**Do I need every key?** No. Add keys only for the services you use.
|
|
332
|
+
|
|
333
|
+
**Which agents work with it?** Any MCP client. It is tested with Claude Desktop, Cursor, Windsurf, a plain JavaScript client and LangChain (JS).
|
|
334
|
+
|
|
335
|
+
**Why is my agent not calling a tool?** It may be in a pack that is not loaded. Tell the agent to use `use_tool`, or add the pack with `causly-server toolsets add <pack>`.
|
|
336
|
+
|
|
337
|
+
**How do I update?** `npm update -g causly-server`. `status` and `doctor` tell you when a new version is out.
|
|
338
|
+
|
|
339
|
+
**How do I back up my data?** `causly-server backup` saves your pipeline, meetings and reminders to a file. `causly-server restore <file>` puts it back.
|
|
340
|
+
|
|
341
|
+
**How do I remove it?** `causly-server remove` takes it out of your editors. Then `npm uninstall -g causly-server`.
|
|
342
|
+
|
|
343
|
+
**Is there a hosted version?** Causly Hosted is in development. [Join the waitlist](https://tally.so/r/NpZkpW).
|
|
344
|
+
|
|
345
|
+
## Compatibility
|
|
346
|
+
|
|
347
|
+
| | Status |
|
|
348
|
+
| --- | --- |
|
|
349
|
+
| Node.js | 20 or newer |
|
|
350
|
+
| Windows | Tested |
|
|
351
|
+
| macOS and Linux | Expected to work; not yet tested on real machines. Reports welcome. |
|
|
352
|
+
| Editors | Claude Desktop, Cursor, Windsurf (tested); Claude Code (command printed by `init`) |
|
|
353
|
+
|
|
354
|
+
## Known limitations
|
|
180
355
|
|
|
181
356
|
- `vercel_create_deployment` and `deploy_project` need the Vercel project to be Git-linked already.
|
|
182
357
|
- `supabase_run_sql` uses the Supabase Management API; some personal access tokens get a `403` for SQL.
|
|
183
358
|
- `slack_search_messages` needs a Slack user token with the `search:read` scope.
|
|
184
359
|
- `docker_push` needs registry authentication already configured on the host.
|
|
185
360
|
- Sentry `resolve_issue`, `ignore_issue` and `add_comment` need a token with the `event:write` scope.
|
|
186
|
-
- On Windows, if `npm install` fails with `'node' is not recognized` in a postinstall script, retry with `npm install --ignore-scripts` ([issue #2](https://github.com/KNIHAL/causly-server/issues/2)).
|
|
187
|
-
|
|
188
|
-
## Documentation, Roadmap, Contributing
|
|
189
|
-
|
|
190
|
-
- Detailed docs: [agenv.causly.in/docs/server](https://agenv.causly.in/docs/server/intro)
|
|
191
|
-
- [ROADMAP.md](./ROADMAP.md), [CONTRIBUTING.md](./CONTRIBUTING.md), [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md), [CHANGELOG.md](./CHANGELOG.md)
|
|
192
361
|
|
|
193
|
-
##
|
|
362
|
+
## Contributing, roadmap, license
|
|
194
363
|
|
|
195
|
-
[
|
|
364
|
+
- Docs: [agenv.causly.in/docs/server](https://agenv.causly.in/docs/server/intro)
|
|
365
|
+
- [CONTRIBUTING.md](./CONTRIBUTING.md) explains how to add a tool pack and the manual testing checklist. Please read the [Code of Conduct](./CODE_OF_CONDUCT.md) too.
|
|
366
|
+
- [ROADMAP.md](./ROADMAP.md) has what is planned next. [CHANGELOG.md](./CHANGELOG.md) has release history.
|
|
367
|
+
- License: [MIT](./LICENSE).
|
|
196
368
|
|
|
197
|
-
## Want
|
|
369
|
+
## Want something custom built on this?
|
|
198
370
|
|
|
199
371
|
Need a custom MCP server, a specific integration, or a related service for your product or team? Reach out: **nihal@causly.in**
|
|
200
372
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "causly-server",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Causly MCP server — an open-source MCP server that gives AI agents the tools to build, ship, deploy, and operate real software end-to-end.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|