@andrewkimjoseph/celina 0.3.2 → 0.3.3
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/README.md +65 -49
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo.png" alt="Celina logo — yellow C with profile silhouette on black" width="160" />
|
|
2
|
+
<img src="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo-yellow.png#gh-dark-mode-only" alt="Celina logo — yellow C with profile silhouette on black" width="160" />
|
|
3
|
+
<img src="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo-black.png#gh-light-mode-only" alt="Celina logo — black C with profile silhouette" width="160" />
|
|
3
4
|
</p>
|
|
4
5
|
|
|
5
6
|
<h1 align="center">Celina — Celo MCP Server</h1>
|
|
@@ -24,9 +25,9 @@ npm: [@andrewkimjoseph/celina](https://www.npmjs.com/package/@andrewkimjoseph/ce
|
|
|
24
25
|
|
|
25
26
|
## Quick start
|
|
26
27
|
|
|
27
|
-
Celina is not meant to be run manually in a terminal for normal use. Your MCP client (Cursor, Claude Desktop, LM Studio, etc.) spawns it as a child process and talks to it over stdio.
|
|
28
|
+
Celina is not meant to be run manually in a terminal for normal use. Your MCP client (Cursor, Claude Desktop, LM Studio, etc.) spawns it as a child process and talks to it over stdio.
|
|
28
29
|
|
|
29
|
-
**
|
|
30
|
+
**Recommended:** install from npm, then add Celina to your MCP config (see [MCP setup](#mcp-setup)).
|
|
30
31
|
|
|
31
32
|
```bash
|
|
32
33
|
npm i @andrewkimjoseph/celina
|
|
@@ -40,30 +41,39 @@ npm run build
|
|
|
40
41
|
npm start
|
|
41
42
|
```
|
|
42
43
|
|
|
43
|
-
##
|
|
44
|
+
## MCP setup
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
Pick your client, install the package, paste the config, restart. Celina shows up as MCP tools your LLM can call.
|
|
46
47
|
|
|
47
|
-
###
|
|
48
|
+
### Local stdio (recommended)
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048
|
|
51
|
-
openssl rsa -pubout -in private.pem -out public.pem
|
|
52
|
-
```
|
|
50
|
+
Install the package, then point your MCP client at the built entry. Works in any stdio client (Cursor, Claude Desktop, LM Studio, Continue, MCP Inspector). Requires Node.js ≥ 20.
|
|
53
51
|
|
|
54
|
-
|
|
52
|
+
1. Run `npm i @andrewkimjoseph/celina`
|
|
53
|
+
2. Open your MCP config (e.g. `claude_desktop_config.json`, Cursor **Settings → MCP**) and merge the snippet below into `mcpServers`
|
|
54
|
+
3. Replace the path with your absolute path to `node_modules/@andrewkimjoseph/celina/build/index.js`, then restart the client
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"mcpServers": {
|
|
59
|
+
"celina": {
|
|
60
|
+
"type": "stdio",
|
|
61
|
+
"command": "node",
|
|
62
|
+
"args": ["/absolute/path/to/node_modules/@andrewkimjoseph/celina/build/index.js"],
|
|
63
|
+
"env": {
|
|
64
|
+
"CELO_PRIVATE_KEY": "0x...",
|
|
65
|
+
"SELF_AGENT_PRIVATE_KEY": "0x..."
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
61
71
|
|
|
62
|
-
|
|
72
|
+
Keep `CELO_PRIVATE_KEY` and `SELF_AGENT_PRIVATE_KEY` out of source control — they stay on your machine. Omit both for read-only chain queries.
|
|
63
73
|
|
|
64
|
-
|
|
74
|
+
### Cursor — remote (streamable HTTP)
|
|
65
75
|
|
|
66
|
-
|
|
76
|
+
No local install — paste and go. Write tools use the [hosted encryption flow](#write-tools-hosted-mode) (no plaintext keys in config).
|
|
67
77
|
|
|
68
78
|
```json
|
|
69
79
|
{
|
|
@@ -101,43 +111,46 @@ Fully quit and relaunch Claude Desktop after editing the config (closing the win
|
|
|
101
111
|
|
|
102
112
|
> **Pro / Max / Team / Enterprise:** you can skip `mcp-remote` and add `https://mcp.celina.andrewkimjoseph.com/mcp` under **Settings → Integrations** instead.
|
|
103
113
|
|
|
104
|
-
### Local stdio (
|
|
114
|
+
### Local stdio (from source)
|
|
105
115
|
|
|
106
|
-
|
|
116
|
+
For development from a cloned repo, point at your local `build/index.js`:
|
|
107
117
|
|
|
108
118
|
```json
|
|
109
119
|
{
|
|
110
120
|
"mcpServers": {
|
|
111
121
|
"celina": {
|
|
122
|
+
"type": "stdio",
|
|
112
123
|
"command": "node",
|
|
113
|
-
"args": ["/absolute/path/to/
|
|
124
|
+
"args": ["/absolute/path/to/celina/build/index.js"],
|
|
125
|
+
"env": {
|
|
126
|
+
"CELO_PRIVATE_KEY": "0x...",
|
|
127
|
+
"SELF_AGENT_PRIVATE_KEY": "0x..."
|
|
128
|
+
}
|
|
114
129
|
}
|
|
115
130
|
}
|
|
116
131
|
}
|
|
117
132
|
```
|
|
118
133
|
|
|
119
|
-
|
|
134
|
+
## Deploy to Render
|
|
120
135
|
|
|
121
|
-
|
|
122
|
-
{
|
|
123
|
-
"mcpServers": {
|
|
124
|
-
"celina": {
|
|
125
|
-
"command": "node",
|
|
126
|
-
"args": ["/absolute/path/to/celina/build/index.js"]
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
```
|
|
136
|
+
This project includes a [Render Blueprint](render.yaml) for one-click deployment as a public Streamable HTTP MCP server.
|
|
131
137
|
|
|
132
|
-
|
|
138
|
+
### 1. Generate an RSA key pair
|
|
133
139
|
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
140
|
+
```bash
|
|
141
|
+
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048
|
|
142
|
+
openssl rsa -pubout -in private.pem -out public.pem
|
|
138
143
|
```
|
|
139
144
|
|
|
140
|
-
|
|
145
|
+
### 2. Deploy
|
|
146
|
+
|
|
147
|
+
1. Push this repo to GitHub
|
|
148
|
+
2. Render Dashboard → **New → Blueprint** → connect the repo
|
|
149
|
+
3. Set `WALLET_ENCRYPTION_PRIVATE_KEY` in the Render Environment tab (paste contents of `private.pem`)
|
|
150
|
+
4. (Optional) Add a custom domain in Render and set `ALLOWED_HOSTS` to that hostname (comma-separated if multiple)
|
|
151
|
+
5. Your MCP endpoint will be at your Render URL + `/mcp`
|
|
152
|
+
|
|
153
|
+
> **Note:** Free Render services spin down after ~15 minutes of inactivity. Cold starts can take 30–60 seconds and may cause MCP client timeouts. Use a Starter plan for always-on hosting.
|
|
141
154
|
|
|
142
155
|
## Local LLM integration
|
|
143
156
|
|
|
@@ -147,10 +160,10 @@ Read-only tools (balances, blocks, GoodDollar status, etc.) work out of the box.
|
|
|
147
160
|
|
|
148
161
|
### LM Studio (0.3.17+)
|
|
149
162
|
|
|
150
|
-
LM Studio can host MCP servers directly via `mcp.json
|
|
163
|
+
LM Studio can host MCP servers directly via `mcp.json`. After `npm i @andrewkimjoseph/celina`:
|
|
151
164
|
|
|
152
165
|
1. Open LM Studio → **Program** → **Install** → **Edit mcp.json**
|
|
153
|
-
2. Add Celina under `mcpServers`
|
|
166
|
+
2. Add Celina under `mcpServers` (same JSON as [Local stdio (recommended)](#local-stdio-recommended))
|
|
154
167
|
3. In **Server Settings**, enable **Allow calling servers from mcp.json**
|
|
155
168
|
4. Chat with a tool-capable model (e.g. Qwen 2.5, Llama 3.1+)
|
|
156
169
|
|
|
@@ -158,17 +171,19 @@ LM Studio can host MCP servers directly via `mcp.json` (same format as Cursor).
|
|
|
158
171
|
{
|
|
159
172
|
"mcpServers": {
|
|
160
173
|
"celina": {
|
|
174
|
+
"type": "stdio",
|
|
161
175
|
"command": "node",
|
|
162
176
|
"args": ["/absolute/path/to/node_modules/@andrewkimjoseph/celina/build/index.js"],
|
|
163
177
|
"env": {
|
|
164
|
-
"CELO_PRIVATE_KEY": "0x..."
|
|
178
|
+
"CELO_PRIVATE_KEY": "0x...",
|
|
179
|
+
"SELF_AGENT_PRIVATE_KEY": "0x..."
|
|
165
180
|
}
|
|
166
181
|
}
|
|
167
182
|
}
|
|
168
183
|
}
|
|
169
184
|
```
|
|
170
185
|
|
|
171
|
-
Omit
|
|
186
|
+
Omit both env vars for read-only chain queries.
|
|
172
187
|
|
|
173
188
|
### Open WebUI + Ollama
|
|
174
189
|
|
|
@@ -197,7 +212,9 @@ For write tools over HTTP, set `WALLET_ENCRYPTION_PRIVATE_KEY` in `.env` (see [D
|
|
|
197
212
|
|
|
198
213
|
[Continue](https://docs.continue.dev/customize/deep-dives/mcp) works with local models (Ollama, LM Studio, etc.) in **agent mode**.
|
|
199
214
|
|
|
200
|
-
|
|
215
|
+
1. Run `npm i @andrewkimjoseph/celina`
|
|
216
|
+
2. Create `.continue/mcpServers/celina.yaml` in your workspace
|
|
217
|
+
3. Switch Continue to agent mode and prompt
|
|
201
218
|
|
|
202
219
|
```yaml
|
|
203
220
|
name: Celina
|
|
@@ -206,14 +223,13 @@ schema: v1
|
|
|
206
223
|
mcpServers:
|
|
207
224
|
- name: celina
|
|
208
225
|
type: stdio
|
|
209
|
-
command:
|
|
226
|
+
command: npx
|
|
210
227
|
args:
|
|
211
|
-
- "
|
|
212
|
-
|
|
213
|
-
CELO_PRIVATE_KEY: "0x..."
|
|
228
|
+
- "-y"
|
|
229
|
+
- "@andrewkimjoseph/celina"
|
|
214
230
|
```
|
|
215
231
|
|
|
216
|
-
Alternatively, copy the [local stdio JSON](#local-stdio-
|
|
232
|
+
Alternatively, copy the [local stdio JSON](#local-stdio-recommended) into `.continue/mcpServers/mcp.json` — Continue picks up Claude/Cursor-style configs automatically.
|
|
217
233
|
|
|
218
234
|
### Test without an LLM
|
|
219
235
|
|
package/package.json
CHANGED