@andrewkimjoseph/celina 0.4.0 → 0.4.2

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.
Files changed (140) hide show
  1. package/bin/wrapper.js +2 -0
  2. package/package.json +5 -44
  3. package/LICENSE +0 -21
  4. package/README.md +0 -292
  5. package/assets/logo-black.png +0 -0
  6. package/assets/logo-yellow.png +0 -0
  7. package/assets/logo.png +0 -0
  8. package/bin/cli.js +0 -2
  9. package/build/abis/aave-pool.d.ts +0 -37
  10. package/build/abis/aave-pool.js +0 -26
  11. package/build/abis/aave-pool.js.map +0 -1
  12. package/build/abis/gooddollar-identity.d.ts +0 -61
  13. package/build/abis/gooddollar-identity.js +0 -38
  14. package/build/abis/gooddollar-identity.js.map +0 -1
  15. package/build/abis/self-registry.d.ts +0 -194
  16. package/build/abis/self-registry.js +0 -120
  17. package/build/abis/self-registry.js.map +0 -1
  18. package/build/clients/celo-client.d.ts +0 -13
  19. package/build/clients/celo-client.js +0 -39
  20. package/build/clients/celo-client.js.map +0 -1
  21. package/build/clients/ens-client.d.ts +0 -10
  22. package/build/clients/ens-client.js +0 -23
  23. package/build/clients/ens-client.js.map +0 -1
  24. package/build/clients/mento-sdk.d.ts +0 -2
  25. package/build/clients/mento-sdk.js +0 -9
  26. package/build/clients/mento-sdk.js.map +0 -1
  27. package/build/clients/self-api.d.ts +0 -82
  28. package/build/clients/self-api.js +0 -242
  29. package/build/clients/self-api.js.map +0 -1
  30. package/build/config/aave.d.ts +0 -11
  31. package/build/config/aave.js +0 -55
  32. package/build/config/aave.js.map +0 -1
  33. package/build/config/celina-tag.d.ts +0 -1
  34. package/build/config/celina-tag.js +0 -3
  35. package/build/config/celina-tag.js.map +0 -1
  36. package/build/config/chains.d.ts +0 -935
  37. package/build/config/chains.js +0 -251
  38. package/build/config/chains.js.map +0 -1
  39. package/build/config/env.d.ts +0 -7
  40. package/build/config/env.js +0 -9
  41. package/build/config/env.js.map +0 -1
  42. package/build/config/gooddollar.d.ts +0 -1
  43. package/build/config/gooddollar.js +0 -2
  44. package/build/config/gooddollar.js.map +0 -1
  45. package/build/config/load-env.d.ts +0 -1
  46. package/build/config/load-env.js +0 -4
  47. package/build/config/load-env.js.map +0 -1
  48. package/build/config/self.d.ts +0 -22
  49. package/build/config/self.js +0 -27
  50. package/build/config/self.js.map +0 -1
  51. package/build/context/app-context.d.ts +0 -28
  52. package/build/context/app-context.js +0 -28
  53. package/build/context/app-context.js.map +0 -1
  54. package/build/index.d.ts +0 -2
  55. package/build/index.js +0 -17
  56. package/build/index.js.map +0 -1
  57. package/build/schemas/common.d.ts +0 -6
  58. package/build/schemas/common.js +0 -24
  59. package/build/schemas/common.js.map +0 -1
  60. package/build/server/create-server.d.ts +0 -2
  61. package/build/server/create-server.js +0 -23
  62. package/build/server/create-server.js.map +0 -1
  63. package/build/server/instructions.d.ts +0 -1
  64. package/build/server/instructions.js +0 -22
  65. package/build/server/instructions.js.map +0 -1
  66. package/build/services/aave.service.d.ts +0 -29
  67. package/build/services/aave.service.js +0 -166
  68. package/build/services/aave.service.js.map +0 -1
  69. package/build/services/account.service.d.ts +0 -13
  70. package/build/services/account.service.js +0 -23
  71. package/build/services/account.service.js.map +0 -1
  72. package/build/services/blockchain.service.d.ts +0 -40
  73. package/build/services/blockchain.service.js +0 -81
  74. package/build/services/blockchain.service.js.map +0 -1
  75. package/build/services/ens.service.d.ts +0 -30
  76. package/build/services/ens.service.js +0 -78
  77. package/build/services/ens.service.js.map +0 -1
  78. package/build/services/gooddollar.service.d.ts +0 -38
  79. package/build/services/gooddollar.service.js +0 -127
  80. package/build/services/gooddollar.service.js.map +0 -1
  81. package/build/services/mento-fx.service.d.ts +0 -71
  82. package/build/services/mento-fx.service.js +0 -261
  83. package/build/services/mento-fx.service.js.map +0 -1
  84. package/build/services/self-session-store.d.ts +0 -19
  85. package/build/services/self-session-store.js +0 -28
  86. package/build/services/self-session-store.js.map +0 -1
  87. package/build/services/self.service.d.ts +0 -247
  88. package/build/services/self.service.js +0 -685
  89. package/build/services/self.service.js.map +0 -1
  90. package/build/services/token.service.d.ts +0 -54
  91. package/build/services/token.service.js +0 -147
  92. package/build/services/token.service.js.map +0 -1
  93. package/build/services/transaction.service.d.ts +0 -24
  94. package/build/services/transaction.service.js +0 -112
  95. package/build/services/transaction.service.js.map +0 -1
  96. package/build/tools/aave.tools.d.ts +0 -2
  97. package/build/tools/aave.tools.js +0 -55
  98. package/build/tools/aave.tools.js.map +0 -1
  99. package/build/tools/blockchain.tools.d.ts +0 -3
  100. package/build/tools/blockchain.tools.js +0 -88
  101. package/build/tools/blockchain.tools.js.map +0 -1
  102. package/build/tools/ens.tools.d.ts +0 -2
  103. package/build/tools/ens.tools.js +0 -27
  104. package/build/tools/ens.tools.js.map +0 -1
  105. package/build/tools/gooddollar.tools.d.ts +0 -2
  106. package/build/tools/gooddollar.tools.js +0 -23
  107. package/build/tools/gooddollar.tools.js.map +0 -1
  108. package/build/tools/helpers.d.ts +0 -3
  109. package/build/tools/helpers.js +0 -16
  110. package/build/tools/helpers.js.map +0 -1
  111. package/build/tools/index.d.ts +0 -5
  112. package/build/tools/index.js +0 -25
  113. package/build/tools/index.js.map +0 -1
  114. package/build/tools/mento-fx.tools.d.ts +0 -2
  115. package/build/tools/mento-fx.tools.js +0 -80
  116. package/build/tools/mento-fx.tools.js.map +0 -1
  117. package/build/tools/self.tools.d.ts +0 -2
  118. package/build/tools/self.tools.js +0 -242
  119. package/build/tools/self.tools.js.map +0 -1
  120. package/build/tools/token.tools.d.ts +0 -2
  121. package/build/tools/token.tools.js +0 -62
  122. package/build/tools/token.tools.js.map +0 -1
  123. package/build/tools/transaction.tools.d.ts +0 -2
  124. package/build/tools/transaction.tools.js +0 -49
  125. package/build/tools/transaction.tools.js.map +0 -1
  126. package/build/tools/types.d.ts +0 -5
  127. package/build/tools/types.js +0 -2
  128. package/build/tools/types.js.map +0 -1
  129. package/build/utils/erc20-allowance-storage.d.ts +0 -7
  130. package/build/utils/erc20-allowance-storage.js +0 -44
  131. package/build/utils/erc20-allowance-storage.js.map +0 -1
  132. package/build/utils/format-date.d.ts +0 -1
  133. package/build/utils/format-date.js +0 -12
  134. package/build/utils/format-date.js.map +0 -1
  135. package/build/utils/self-format.d.ts +0 -16
  136. package/build/utils/self-format.js +0 -59
  137. package/build/utils/self-format.js.map +0 -1
  138. package/build/utils/self-signing.d.ts +0 -4
  139. package/build/utils/self-signing.js +0 -38
  140. package/build/utils/self-signing.js.map +0 -1
package/bin/wrapper.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "@andrewkimjoseph/celina-mcp/build/index.js";
package/package.json CHANGED
@@ -1,55 +1,16 @@
1
1
  {
2
2
  "name": "@andrewkimjoseph/celina",
3
- "version": "0.4.0",
4
- "description": "CelinaMCP server for Celo mainnet. Balances, transfers, Self Agent ID, and chain reads for LLM agents.",
3
+ "version": "0.4.2",
4
+ "description": "Deprecateduse @andrewkimjoseph/celina-mcp",
5
5
  "type": "module",
6
- "main": "build/index.js",
7
6
  "bin": {
8
- "celina": "bin/cli.js"
7
+ "celina": "bin/wrapper.js",
8
+ "celina-mcp": "bin/wrapper.js"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },
13
- "files": [
14
- "build/",
15
- "bin/",
16
- "assets/logo.png",
17
- "assets/logo-black.png",
18
- "assets/logo-yellow.png",
19
- "README.md",
20
- "LICENSE"
21
- ],
22
- "scripts": {
23
- "build": "rm -rf build && tsc",
24
- "start": "node build/index.js",
25
- "dev": "tsc --watch",
26
- "prepare": "npm run build",
27
- "inspect": "npx @modelcontextprotocol/inspector node build/index.js"
28
- },
29
- "engines": {
30
- "node": ">=20.0.0"
31
- },
32
- "keywords": [
33
- "mcp",
34
- "celina",
35
- "celo",
36
- "blockchain",
37
- "web3",
38
- "ai",
39
- "agent"
40
- ],
41
- "author": "Andrew Kim Joseph",
42
- "license": "MIT",
43
13
  "dependencies": {
44
- "@mento-protocol/mento-sdk": "^3.2.8",
45
- "@modelcontextprotocol/sdk": "^1.22.0",
46
- "@noble/ed25519": "^3.1.0",
47
- "dotenv": "^17.4.2",
48
- "viem": "^2.39.3",
49
- "zod": "^3.24.3"
50
- },
51
- "devDependencies": {
52
- "@types/node": "^22.0.0",
53
- "typescript": "^5.8.2"
14
+ "@andrewkimjoseph/celina-mcp": "^0.7.12"
54
15
  }
55
16
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Andrew Kim Joseph
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/README.md DELETED
@@ -1,292 +0,0 @@
1
- <p align="center">
2
- <picture>
3
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo-yellow.png">
4
- <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo-black.png">
5
- <img src="https://raw.githubusercontent.com/andrewkimjoseph/celina/main/assets/logo-black.png" alt="Celina logo — C with profile silhouette" width="160">
6
- </picture>
7
- </p>
8
-
9
- <h1 align="center">Celina — Celo MCP Server</h1>
10
-
11
- <p align="center">
12
- <strong>Celina</strong> is an open-source <a href="https://modelcontextprotocol.io">Model Context Protocol</a> server that gives LLMs read + write access to <strong>Celo mainnet</strong> — balances, stablecoins, sends, and chain reads.
13
- </p>
14
-
15
- <p align="center">
16
- <a href="https://celina.andrewkimjoseph.com">Website</a>
17
- ·
18
- <a href="https://www.npmjs.com/package/@andrewkimjoseph/celina">npm</a>
19
- </p>
20
-
21
- ## Install
22
-
23
- ```bash
24
- npm i @andrewkimjoseph/celina@latest
25
- ```
26
-
27
- ## Quick start
28
-
29
- 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.
30
-
31
- Install from npm, then add Celina to your MCP config — see [MCP setup](#mcp-setup).
32
-
33
- ## MCP setup
34
-
35
- Pick your client, install the package, paste the config, restart. Celina shows up as MCP tools your LLM can call.
36
-
37
- ### Local stdio (recommended)
38
-
39
- Install the package, then add Celina to your MCP config. Your client spawns `npx` and talks to Celina over stdio. Works in any stdio client (Cursor, Claude Desktop, LM Studio, Continue, MCP Inspector). Requires Node.js ≥ 20.
40
-
41
- 1. Run `npm i @andrewkimjoseph/celina` (optional but recommended — caches the package locally for faster MCP startup)
42
- 2. Open your MCP config (e.g. `claude_desktop_config.json`, Cursor **Settings → MCP**) and merge the snippet below into `mcpServers`
43
- 3. Restart the client
44
-
45
- ```json
46
- {
47
- "mcpServers": {
48
- "celina": {
49
- "type": "stdio",
50
- "command": "npx",
51
- "args": ["-y", "@andrewkimjoseph/celina"],
52
- "env": {
53
- "CELO_PRIVATE_KEY": "0x...",
54
- "SELF_AGENT_PRIVATE_KEY": "0x..."
55
- }
56
- }
57
- }
58
- }
59
- ```
60
-
61
- 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.
62
-
63
- ### Claude Desktop
64
-
65
- Use the same stdio config in `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`). Requires Node.js ≥ 20.
66
-
67
- ```json
68
- {
69
- "mcpServers": {
70
- "celina": {
71
- "type": "stdio",
72
- "command": "npx",
73
- "args": ["-y", "@andrewkimjoseph/celina"],
74
- "env": {
75
- "CELO_PRIVATE_KEY": "0x...",
76
- "SELF_AGENT_PRIVATE_KEY": "0x..."
77
- }
78
- }
79
- }
80
- }
81
- ```
82
-
83
- Fully quit and relaunch Claude Desktop after editing the config (closing the window is not enough).
84
-
85
- ### Local stdio (from source)
86
-
87
- For development from a cloned repo, point at your local `build/index.js`:
88
-
89
- ```json
90
- {
91
- "mcpServers": {
92
- "celina": {
93
- "type": "stdio",
94
- "command": "node",
95
- "args": ["/absolute/path/to/celina/build/index.js"],
96
- "env": {
97
- "CELO_PRIVATE_KEY": "0x...",
98
- "SELF_AGENT_PRIVATE_KEY": "0x..."
99
- }
100
- }
101
- }
102
- }
103
- ```
104
-
105
- ## Run Celina with your own model
106
-
107
- Celina is a plain MCP server. Pair it with any MCP-aware local stack — Ollama, LM Studio, llama.cpp — through a client that supports tool calling.
108
-
109
- Read-only tools (balances, blocks, GoodDollar status, etc.) work out of the box. For write tools, set `CELO_PRIVATE_KEY` in the MCP server `env` block.
110
-
111
- ### LM Studio (0.3.17+)
112
-
113
- Native MCP hosting via `mcp.json`.
114
-
115
- 1. **Program** → **Install** → **Edit mcp.json**
116
- 2. Add Celina under `mcpServers`
117
- 3. Enable **Allow calling servers from mcp.json**
118
- 4. Chat with a tool-capable model (Qwen 2.5, Llama 3.1+)
119
-
120
- ```json
121
- {
122
- "mcpServers": {
123
- "celina": {
124
- "type": "stdio",
125
- "command": "npx",
126
- "args": ["-y", "@andrewkimjoseph/celina"],
127
- "env": {
128
- "CELO_PRIVATE_KEY": "0x...",
129
- "SELF_AGENT_PRIVATE_KEY": "0x..."
130
- }
131
- }
132
- }
133
- }
134
- ```
135
-
136
- Omit `CELO_PRIVATE_KEY` for read-only.
137
-
138
- ### Continue · VS Code
139
-
140
- Agent mode in your editor. Drop a YAML file into your workspace and Continue picks it up in agent mode.
141
-
142
- 1. Create `.continue/mcpServers/celina.yaml`
143
- 2. Paste the snippet below
144
- 3. Switch Continue to agent mode and prompt
145
-
146
- ```yaml
147
- name: Celina
148
- version: 0.0.1
149
- schema: v1
150
- mcpServers:
151
- - name: celina
152
- type: stdio
153
- command: npx
154
- args:
155
- - "-y"
156
- - "@andrewkimjoseph/celina"
157
- ```
158
-
159
- Alternatively, copy the [local stdio JSON](#local-stdio-recommended) into `.continue/mcpServers/mcp.json` — Continue picks up Claude/Cursor-style configs automatically.
160
-
161
- ### Test without an LLM
162
-
163
- Use MCP Inspector to call Celina tools directly over stdio:
164
-
165
- ```bash
166
- npm run build
167
- npm run inspect
168
- ```
169
-
170
- ### Tips
171
-
172
- - Use models with reliable tool-calling support; small or older models may skip tools or call them incorrectly.
173
- - Start with read-only prompts, e.g. *"What's the USDm balance of 0x…?"* or *"Is this wallet GoodDollar whitelisted?"*
174
- - Keep private keys in env vars only — never commit them to config files in git.
175
-
176
- ## Write tools
177
-
178
- Set `CELO_PRIVATE_KEY` in your MCP server `env` block for on-chain writes (`send_token`, `estimate_send`, `execute_mento_fx`, `supply_aave`, `withdraw_aave`). Use `SELF_AGENT_PRIVATE_KEY` for Self agent signing tools. Keys stay on your machine and are not sent to Celina's authors.
179
-
180
- ## Environment variables
181
-
182
- | Variable | Default | Description |
183
- |----------|---------|-------------|
184
- | `CELO_PRIVATE_KEY` | — | Write tools (send, Mento FX, Aave) |
185
- | `SELF_AGENT_PRIVATE_KEY` | — | Self Agent ID signing/identity tools (separate from CELO wallet) |
186
- | `SELF_AGENT_API_BASE` | `https://app.ai.self.xyz` | Override Self Agent ID REST API base URL |
187
- | `CELO_RPC_URL_MAINNET` | Forno public RPC | Override mainnet RPC |
188
-
189
- Copy `.env.example` to `.env` for local development.
190
-
191
- ## Known tokens
192
-
193
- All supported tokens live in a single registry (`src/config/chains.ts`):
194
-
195
- | Category | Symbols |
196
- |----------|---------|
197
- | Native | `CELO` |
198
- | Mento stablecoins | `USDm`, `EURm`, `BRLm`, `XOFm`, `KESm`, `PHPm`, `COPm`, `GBPm`, `CADm`, `AUDm`, `ZARm`, `GHSm`, `NGNm`, `JPYm`, `CHFm` |
199
- | Bridged / third-party | `USDT`, `USDC`, `vEUR`, `vGBP`, `vCHF`, `USDM`, `USDA`, `EURA`, `USDGLO`, `BRLA`, `COPM` |
200
- | GoodDollar | `GoodDollar`, `G$` (`0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A`) |
201
-
202
- Token symbols are resolved case-insensitively. Legacy aliases `cUSD` and `cEUR` map to `USDm` and `EURm`. You can also pass any ERC-20 contract address directly.
203
-
204
- - `get_celo_balances` — check specific tokens (defaults to `CELO` + `USDm`)
205
- - `get_stablecoin_balances` — scan all registry stablecoins in one call (omits zero balances by default)
206
-
207
- ## Tools (v0.2)
208
-
209
- | Tool | Type | Description |
210
- |------|------|-------------|
211
- | `get_network_status` | read | Mainnet chain ID, block, gas price |
212
- | `get_block` | read | Block by number/hash/latest |
213
- | `get_latest_blocks` | read | Recent blocks |
214
- | `get_transaction` | read | Tx + receipt |
215
- | `get_account` | read | CELO balance, nonce |
216
- | `get_celo_balances` | read | CELO + ERC-20 balances (default: CELO + USDm) |
217
- | `get_stablecoin_balances` | read | All registry stablecoins including GoodDollar |
218
- | `get_token_info` | read | Token metadata |
219
- | `estimate_send` | read* | Gas estimate (*needs `CELO_PRIVATE_KEY`) |
220
- | `send_token` | write | Send CELO or ERC-20 |
221
- | `get_mento_fx_quote` | read | Mento FX expected output (no wallet) |
222
- | `estimate_mento_fx` | read* | Mento FX gas estimate (*needs `CELO_PRIVATE_KEY`) |
223
- | `execute_mento_fx` | write | Execute Mento FX conversion |
224
- | `supply_aave` | write | Supply tokens to Aave V3 on Celo (USDT, WETH, USDm, USDC, CELO, EURm) |
225
- | `withdraw_aave` | write | Withdraw tokens from Aave V3 on Celo |
226
- | `get_gooddollar_whitelisting_info` | read | GoodDollar IdentityV4 whitelist status |
227
- | `verify_self_agent` | read | Verify Self Agent ID on-chain by address |
228
- | `lookup_self_agent` | read | Look up Self agent by numeric ID (ai.self.xyz) |
229
- | `verify_self_request` | read | Verify signed Self Agent HTTP request headers |
230
- | `register_self_agent` | write | Start Self agent registration (QR/deep link) |
231
- | `check_self_registration` | read* | Poll registration/refresh/deregister session (*may return private key) |
232
- | `get_self_identity` | read* | Current Self agent identity (*needs agent key) |
233
- | `refresh_self_proof` | write | Renew human proof after on-chain expiry (`isProofFresh` false) |
234
- | `deregister_self_agent` | write | Irreversibly revoke Self agent identity |
235
- | `sign_self_request` | read* | Sign HTTP request with Self agent headers (*needs agent key) |
236
- | `authenticated_self_fetch` | write | HTTP fetch with Self agent auth (*needs agent key) |
237
-
238
- ### Self Agent ID notes
239
-
240
- - **Registration lifecycle APIs** (`register_self_agent`, `refresh_self_proof`, `deregister_self_agent`) use `network: "mainnet"` in the Self REST API request body.
241
- - **Demo and gated HTTP endpoints** (e.g. `https://app.ai.self.xyz/api/demo/verify`) require the query param **`network=celo-mainnet`**, not `network=mainnet`.
242
- - **QR scan URLs** use `/scan/{sessionToken}`, not `/qr/...`.
243
- - **`refresh_self_proof`** only starts after on-chain proof expiry (`isProofFresh` is false); while fresh it returns a clear error instead of a QR that will fail on-chain. The 30-day `is_expiring_soon` flag (matching Self SDK `isProofExpiringSoon`) is for warnings only. Self SDK also documents deregister → re-register as an alternative renewal path.
244
-
245
- Example authenticated demo call:
246
-
247
- ```text
248
- authenticated_self_fetch
249
- method: POST
250
- url: https://app.ai.self.xyz/api/demo/verify?network=celo-mainnet
251
- body: {}
252
- ```
253
-
254
- ## Adding a new tool
255
-
256
- 1. Create `src/tools/my-feature.tools.ts` implementing `ToolModule`:
257
-
258
- ```typescript
259
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
260
- import type { AppContext } from "../context/app-context.js";
261
- import type { ToolModule } from "./types.js";
262
-
263
- export const myFeatureTools: ToolModule = {
264
- register(server, ctx) {
265
- server.registerTool("my_tool", { /* ... */ }, async (args) => { /* ... */ });
266
- },
267
- };
268
- ```
269
-
270
- 2. Append to `toolModules` in `src/tools/index.ts`.
271
- 3. Add domain logic in `src/services/` if needed.
272
- 4. Rebuild: `npm run build`.
273
-
274
- No changes to `src/index.ts` or server bootstrap required.
275
-
276
- ## Roadmap
277
-
278
- - [x] Mento FX routing (`get_mento_fx_quote`, `estimate_mento_fx`, `execute_mento_fx`)
279
- - [x] Aave lending tools (`supply_aave`, `withdraw_aave`) — USDT, WETH, USDm, USDC, CELO, EURm
280
- - [x] Self proof verification (`verify_self_agent`, `verify_self_request`, `ai.self.xyz`)
281
- - [x] Self Agent ID check (`lookup_self_agent`, registration & lifecycle tools)
282
-
283
- ## Development
284
-
285
- ```bash
286
- npm run dev # watch TypeScript
287
- npm run inspect # MCP Inspector UI (stdio)
288
- ```
289
-
290
- ## License
291
-
292
- MIT
Binary file
Binary file
package/assets/logo.png DELETED
Binary file
package/bin/cli.js DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import "../build/index.js";
@@ -1,37 +0,0 @@
1
- export declare const aavePoolAbi: readonly [{
2
- readonly type: "function";
3
- readonly name: "supply";
4
- readonly inputs: readonly [{
5
- readonly name: "asset";
6
- readonly type: "address";
7
- }, {
8
- readonly name: "amount";
9
- readonly type: "uint256";
10
- }, {
11
- readonly name: "onBehalfOf";
12
- readonly type: "address";
13
- }, {
14
- readonly name: "referralCode";
15
- readonly type: "uint16";
16
- }];
17
- readonly outputs: readonly [];
18
- readonly stateMutability: "nonpayable";
19
- }, {
20
- readonly type: "function";
21
- readonly name: "withdraw";
22
- readonly inputs: readonly [{
23
- readonly name: "asset";
24
- readonly type: "address";
25
- }, {
26
- readonly name: "amount";
27
- readonly type: "uint256";
28
- }, {
29
- readonly name: "to";
30
- readonly type: "address";
31
- }];
32
- readonly outputs: readonly [{
33
- readonly name: "";
34
- readonly type: "uint256";
35
- }];
36
- readonly stateMutability: "nonpayable";
37
- }];
@@ -1,26 +0,0 @@
1
- export const aavePoolAbi = [
2
- {
3
- type: "function",
4
- name: "supply",
5
- inputs: [
6
- { name: "asset", type: "address" },
7
- { name: "amount", type: "uint256" },
8
- { name: "onBehalfOf", type: "address" },
9
- { name: "referralCode", type: "uint16" },
10
- ],
11
- outputs: [],
12
- stateMutability: "nonpayable",
13
- },
14
- {
15
- type: "function",
16
- name: "withdraw",
17
- inputs: [
18
- { name: "asset", type: "address" },
19
- { name: "amount", type: "uint256" },
20
- { name: "to", type: "address" },
21
- ],
22
- outputs: [{ name: "", type: "uint256" }],
23
- stateMutability: "nonpayable",
24
- },
25
- ];
26
- //# sourceMappingURL=aave-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aave-pool.js","sourceRoot":"","sources":["../../src/abis/aave-pool.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;SAChC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,YAAY;KAC9B;CACO,CAAC"}
@@ -1,61 +0,0 @@
1
- export declare const goodDollarIdentityAbi: readonly [{
2
- readonly name: "identities";
3
- readonly type: "function";
4
- readonly stateMutability: "view";
5
- readonly inputs: readonly [{
6
- readonly name: "account";
7
- readonly type: "address";
8
- }];
9
- readonly outputs: readonly [{
10
- readonly name: "dateAuthenticated";
11
- readonly type: "uint256";
12
- }, {
13
- readonly name: "dateAdded";
14
- readonly type: "uint256";
15
- }, {
16
- readonly name: "did";
17
- readonly type: "string";
18
- }, {
19
- readonly name: "whitelistedOnChainId";
20
- readonly type: "uint256";
21
- }, {
22
- readonly name: "status";
23
- readonly type: "uint8";
24
- }, {
25
- readonly name: "authCount";
26
- readonly type: "uint32";
27
- }];
28
- }, {
29
- readonly name: "isWhitelisted";
30
- readonly type: "function";
31
- readonly stateMutability: "view";
32
- readonly inputs: readonly [{
33
- readonly name: "account";
34
- readonly type: "address";
35
- }];
36
- readonly outputs: readonly [{
37
- readonly name: "";
38
- readonly type: "bool";
39
- }];
40
- }, {
41
- readonly name: "authenticationPeriod";
42
- readonly type: "function";
43
- readonly stateMutability: "view";
44
- readonly inputs: readonly [];
45
- readonly outputs: readonly [{
46
- readonly name: "";
47
- readonly type: "uint256";
48
- }];
49
- }, {
50
- readonly name: "reverifyDaysOptions";
51
- readonly type: "function";
52
- readonly stateMutability: "view";
53
- readonly inputs: readonly [{
54
- readonly name: "";
55
- readonly type: "uint256";
56
- }];
57
- readonly outputs: readonly [{
58
- readonly name: "";
59
- readonly type: "uint8";
60
- }];
61
- }];
@@ -1,38 +0,0 @@
1
- export const goodDollarIdentityAbi = [
2
- {
3
- name: "identities",
4
- type: "function",
5
- stateMutability: "view",
6
- inputs: [{ name: "account", type: "address" }],
7
- outputs: [
8
- { name: "dateAuthenticated", type: "uint256" },
9
- { name: "dateAdded", type: "uint256" },
10
- { name: "did", type: "string" },
11
- { name: "whitelistedOnChainId", type: "uint256" },
12
- { name: "status", type: "uint8" },
13
- { name: "authCount", type: "uint32" },
14
- ],
15
- },
16
- {
17
- name: "isWhitelisted",
18
- type: "function",
19
- stateMutability: "view",
20
- inputs: [{ name: "account", type: "address" }],
21
- outputs: [{ name: "", type: "bool" }],
22
- },
23
- {
24
- name: "authenticationPeriod",
25
- type: "function",
26
- stateMutability: "view",
27
- inputs: [],
28
- outputs: [{ name: "", type: "uint256" }],
29
- },
30
- {
31
- name: "reverifyDaysOptions",
32
- type: "function",
33
- stateMutability: "view",
34
- inputs: [{ name: "", type: "uint256" }],
35
- outputs: [{ name: "", type: "uint8" }],
36
- },
37
- ];
38
- //# sourceMappingURL=gooddollar-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gooddollar-identity.js","sourceRoot":"","sources":["../../src/abis/gooddollar-identity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;SACtC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACtC;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KACvC;CACqB,CAAC"}