@adorbistech/mcp-server 1.0.0
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/LICENSE +3 -0
- package/README.md +218 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +312 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -0
package/LICENSE
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# @adorbistech/mcp-server
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**Adorbis AI MCP Server**
|
|
6
|
+
|
|
7
|
+
One API key. 40+ models. Auto-routed.
|
|
8
|
+
Use Adorbis AI from Claude Code, Cursor, Cline, and any MCP-compatible tool.
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/@adorbistech/mcp-server)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
[Get a free API key](https://ai.adorbistech.com) · [Documentation](https://ai.adorbistech.com/docs) · [Dashboard](https://ai.adorbistech.com/dashboard)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Quick Install
|
|
20
|
+
|
|
21
|
+
### Claude Code
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
claude mcp add adorbis -- npx -y @adorbistech/mcp-server
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Then set your API key:
|
|
28
|
+
```bash
|
|
29
|
+
claude mcp add adorbis -e ADORBIS_API_KEY=your_key_here -- npx -y @adorbistech/mcp-server
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Or add to `~/.claude/settings.json`:
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"mcpServers": {
|
|
36
|
+
"adorbis": {
|
|
37
|
+
"command": "npx",
|
|
38
|
+
"args": ["-y", "@adorbistech/mcp-server"],
|
|
39
|
+
"env": {
|
|
40
|
+
"ADORBIS_API_KEY": "your_key_here"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### Cursor
|
|
50
|
+
|
|
51
|
+
Add to Cursor MCP settings (`~/.cursor/mcp.json`):
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"mcpServers": {
|
|
55
|
+
"adorbis": {
|
|
56
|
+
"command": "npx",
|
|
57
|
+
"args": ["-y", "@adorbistech/mcp-server"],
|
|
58
|
+
"env": {
|
|
59
|
+
"ADORBIS_API_KEY": "your_key_here"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### Cline (VS Code)
|
|
69
|
+
|
|
70
|
+
Add to `.vscode/settings.json` or Cline MCP settings:
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"cline.mcpServers": {
|
|
74
|
+
"adorbis": {
|
|
75
|
+
"command": "npx",
|
|
76
|
+
"args": ["-y", "@adorbistech/mcp-server"],
|
|
77
|
+
"env": {
|
|
78
|
+
"ADORBIS_API_KEY": "your_key_here"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Auto-configure with CLI
|
|
88
|
+
|
|
89
|
+
Use `adorbis-init` to configure everything automatically:
|
|
90
|
+
```bash
|
|
91
|
+
npx adorbis-init --mcps
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Available Tools
|
|
97
|
+
|
|
98
|
+
Once connected, your AI assistant has access to these tools:
|
|
99
|
+
|
|
100
|
+
### `adorbis_chat`
|
|
101
|
+
General-purpose AI chat. Auto-routes to the best model for your task.
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Ask Adorbis: What is the difference between TCP and UDP?
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### `adorbis_code`
|
|
108
|
+
Code generation, debugging, review, and explanation. Routes to the best coding model automatically.
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Use adorbis_code to write a TypeScript function that debounces API calls
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### `adorbis_reason`
|
|
115
|
+
Complex reasoning — math, logic, multi-step analysis. Routes to frontier reasoning models.
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
Use adorbis_reason to analyze the time complexity of this algorithm
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### `adorbis_write`
|
|
122
|
+
Long-form writing — documentation, articles, emails, reports.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Use adorbis_write to create a README for my project
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### `adorbis_balance`
|
|
129
|
+
Check your Adorbis AI credit balance and account status.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Check my Adorbis balance
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### `adorbis_models`
|
|
136
|
+
List all available departments and what they're best for.
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
What Adorbis departments are available?
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### `adorbis_multi_turn`
|
|
143
|
+
Multi-turn conversations with full message history.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Departments
|
|
148
|
+
|
|
149
|
+
| Department | Best for | Speed |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| `adorbis/quick` | Chat, Q&A, simple tasks | Fastest |
|
|
152
|
+
| `adorbis/coder` | Code generation, debugging, review | Fast |
|
|
153
|
+
| `adorbis/auto` | Mixed workloads, smart routing | Varies |
|
|
154
|
+
| `adorbis/write` | Documentation, articles, emails | Medium |
|
|
155
|
+
| `adorbis/reason` | Math, logic, complex analysis | Thorough |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## How Adorbis AI works
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
Your tool (Claude Code / Cursor / Cline)
|
|
163
|
+
│
|
|
164
|
+
▼ MCP call
|
|
165
|
+
@adorbistech/mcp-server
|
|
166
|
+
│
|
|
167
|
+
▼ HTTPS
|
|
168
|
+
api.adorbistech.com ←── your single API key
|
|
169
|
+
│
|
|
170
|
+
┌───────┴────────┐
|
|
171
|
+
│ Department │
|
|
172
|
+
│ routing │
|
|
173
|
+
└───────┬────────┘
|
|
174
|
+
│
|
|
175
|
+
┌─────────┼──────────┐
|
|
176
|
+
▼ ▼ ▼
|
|
177
|
+
Gemini DeepSeek Claude
|
|
178
|
+
Flash V3 Sonnet
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Adorbis monitors model health, latency, and cost in real time. When you send a request, it routes to the best available model for that department — automatically. No manual model switching.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Environment Variables
|
|
186
|
+
|
|
187
|
+
| Variable | Required | Description |
|
|
188
|
+
|---|---|---|
|
|
189
|
+
| `ADORBIS_API_KEY` | Yes | Your Adorbis API key |
|
|
190
|
+
|
|
191
|
+
Get a free key (1,000 credits/month) at **https://ai.adorbistech.com**
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Plans
|
|
196
|
+
|
|
197
|
+
| Plan | Price | Credits |
|
|
198
|
+
|---|---|---|
|
|
199
|
+
| Free | $0/mo | 1,000 AC |
|
|
200
|
+
| Starter | $10/mo | 15,000 AC |
|
|
201
|
+
| Pro | $30/mo | 50,000 AC |
|
|
202
|
+
| Business | $100/mo | 200,000 AC |
|
|
203
|
+
|
|
204
|
+
1 AC = $0.001 of compute. [Upgrade →](https://ai.adorbistech.com/dashboard)
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Also available
|
|
209
|
+
|
|
210
|
+
- **VS Code Extension** — `ext install adorbis.adorbis-ai`
|
|
211
|
+
- **CLI setup wizard** — `npx adorbis-init`
|
|
212
|
+
- **Docs** — [ai.adorbistech.com/docs](https://ai.adorbistech.com/docs)
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## License
|
|
217
|
+
|
|
218
|
+
MIT © [Adorbis Technologies LLC](https://ai.adorbistech.com)
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
5
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
// ── Config ────────────────────────────────────────────────────────────────────
|
|
8
|
+
const API_KEY = process.env.ADORBIS_API_KEY || process.env.ANTHROPIC_API_KEY || "";
|
|
9
|
+
const BASE_URL = "https://api.adorbistech.com";
|
|
10
|
+
const API_URL = `${BASE_URL}/v1`;
|
|
11
|
+
const DEPARTMENTS = [
|
|
12
|
+
"adorbis/coder",
|
|
13
|
+
"adorbis/quick",
|
|
14
|
+
"adorbis/auto",
|
|
15
|
+
"adorbis/write",
|
|
16
|
+
"adorbis/reason",
|
|
17
|
+
];
|
|
18
|
+
async function callAdorbis(messages, department = "adorbis/quick", maxTokens = 2048) {
|
|
19
|
+
if (!API_KEY) {
|
|
20
|
+
throw new Error("ADORBIS_API_KEY environment variable is not set. " +
|
|
21
|
+
"Get a free key at https://ai.adorbistech.com");
|
|
22
|
+
}
|
|
23
|
+
const response = await fetch(`${API_URL}/chat/completions`, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: `Bearer ${API_KEY}`,
|
|
27
|
+
"Content-Type": "application/json",
|
|
28
|
+
},
|
|
29
|
+
body: JSON.stringify({
|
|
30
|
+
model: department,
|
|
31
|
+
messages,
|
|
32
|
+
max_tokens: maxTokens,
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const body = await response.text();
|
|
37
|
+
if (response.status === 401)
|
|
38
|
+
throw new Error("Invalid API key. Check your ADORBIS_API_KEY.");
|
|
39
|
+
if (response.status === 402)
|
|
40
|
+
throw new Error("Insufficient credits. Top up at https://ai.adorbistech.com/dashboard");
|
|
41
|
+
if (response.status === 429)
|
|
42
|
+
throw new Error("Rate limit exceeded. Slow down requests or upgrade your plan.");
|
|
43
|
+
throw new Error(`Adorbis API error (${response.status}): ${body}`);
|
|
44
|
+
}
|
|
45
|
+
return response.json();
|
|
46
|
+
}
|
|
47
|
+
async function checkBalance() {
|
|
48
|
+
if (!API_KEY)
|
|
49
|
+
throw new Error("ADORBIS_API_KEY not set.");
|
|
50
|
+
// Validate key via a minimal chat request
|
|
51
|
+
const res = await fetch(`${API_URL}/chat/completions`, {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers: {
|
|
54
|
+
Authorization: `Bearer ${API_KEY}`,
|
|
55
|
+
"Content-Type": "application/json",
|
|
56
|
+
},
|
|
57
|
+
body: JSON.stringify({
|
|
58
|
+
model: "adorbis/quick",
|
|
59
|
+
messages: [{ role: "user", content: "hi" }],
|
|
60
|
+
max_tokens: 1,
|
|
61
|
+
}),
|
|
62
|
+
});
|
|
63
|
+
if (!res.ok)
|
|
64
|
+
throw new Error(`API error (${res.status})`);
|
|
65
|
+
// Balance is returned in response headers or body depending on version
|
|
66
|
+
const data = await res.json();
|
|
67
|
+
return {
|
|
68
|
+
credits_remaining: data.usage?.credits_remaining ?? 0,
|
|
69
|
+
plan: data.plan ?? "unknown",
|
|
70
|
+
email: data.email,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// ── MCP Server ────────────────────────────────────────────────────────────────
|
|
74
|
+
const server = new mcp_js_1.McpServer({
|
|
75
|
+
name: "adorbis-ai",
|
|
76
|
+
version: "1.0.0",
|
|
77
|
+
description: "Adorbis AI — one API key, 40+ models, auto-routed. Access OpenAI, Anthropic, Gemini, DeepSeek and more through a single unified interface.",
|
|
78
|
+
});
|
|
79
|
+
// ── Tool: adorbis_chat ────────────────────────────────────────────────────────
|
|
80
|
+
server.tool("adorbis_chat", "Send a message to Adorbis AI and get a response. Adorbis auto-routes to the best available model based on the selected department. Use this for general AI assistance, questions, and conversations.", {
|
|
81
|
+
message: zod_1.z.string().describe("The message or question to send to the AI"),
|
|
82
|
+
department: zod_1.z.enum(DEPARTMENTS).optional().default("adorbis/quick").describe("AI department to use: 'adorbis/quick' (fast responses), 'adorbis/coder' (code), 'adorbis/auto' (smart routing), 'adorbis/write' (writing), 'adorbis/reason' (analysis)"),
|
|
83
|
+
system_prompt: zod_1.z.string().optional().describe("Optional system prompt to set context for the AI"),
|
|
84
|
+
max_tokens: zod_1.z.number().int().min(1).max(8192).optional().default(2048).describe("Maximum tokens in the response"),
|
|
85
|
+
}, async ({ message, department, system_prompt, max_tokens }) => {
|
|
86
|
+
const messages = [];
|
|
87
|
+
if (system_prompt)
|
|
88
|
+
messages.push({ role: "system", content: system_prompt });
|
|
89
|
+
messages.push({ role: "user", content: message });
|
|
90
|
+
const result = await callAdorbis(messages, department, max_tokens);
|
|
91
|
+
const reply = result.choices[0]?.message?.content ?? "";
|
|
92
|
+
const usage = result.usage;
|
|
93
|
+
return {
|
|
94
|
+
content: [
|
|
95
|
+
{
|
|
96
|
+
type: "text",
|
|
97
|
+
text: reply,
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
structuredContent: {
|
|
101
|
+
reply,
|
|
102
|
+
model: result.model,
|
|
103
|
+
department,
|
|
104
|
+
usage: usage ? {
|
|
105
|
+
prompt_tokens: usage.prompt_tokens,
|
|
106
|
+
completion_tokens: usage.completion_tokens,
|
|
107
|
+
total_tokens: usage.total_tokens,
|
|
108
|
+
} : undefined,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
// ── Tool: adorbis_code ────────────────────────────────────────────────────────
|
|
113
|
+
server.tool("adorbis_code", "Generate, review, debug, or explain code using Adorbis AI's code-optimized department. Routes to the best available coding model (DeepSeek Coder, Claude Sonnet, Gemini etc.) automatically.", {
|
|
114
|
+
task: zod_1.z.string().describe("The coding task — e.g. 'write a Python function to parse JSON', 'review this code for bugs', 'explain what this does'"),
|
|
115
|
+
code: zod_1.z.string().optional().describe("Existing code to review, debug, or build upon"),
|
|
116
|
+
language: zod_1.z.string().optional().describe("Programming language (e.g. python, typescript, rust, go)"),
|
|
117
|
+
max_tokens: zod_1.z.number().int().min(1).max(8192).optional().default(4096).describe("Maximum tokens in the response"),
|
|
118
|
+
}, async ({ task, code, language, max_tokens }) => {
|
|
119
|
+
const systemPrompt = `You are an expert software engineer. Provide clean, well-commented, production-ready code. ${language ? `The user is working in ${language}.` : ""} Be concise and practical.`;
|
|
120
|
+
let userMessage = task;
|
|
121
|
+
if (code) {
|
|
122
|
+
userMessage += `\n\n\`\`\`${language || ""}\n${code}\n\`\`\``;
|
|
123
|
+
}
|
|
124
|
+
const messages = [
|
|
125
|
+
{ role: "system", content: systemPrompt },
|
|
126
|
+
{ role: "user", content: userMessage },
|
|
127
|
+
];
|
|
128
|
+
const result = await callAdorbis(messages, "adorbis/coder", max_tokens);
|
|
129
|
+
const reply = result.choices[0]?.message?.content ?? "";
|
|
130
|
+
return {
|
|
131
|
+
content: [{ type: "text", text: reply }],
|
|
132
|
+
structuredContent: {
|
|
133
|
+
reply,
|
|
134
|
+
model: result.model,
|
|
135
|
+
department: "adorbis/coder",
|
|
136
|
+
language: language ?? "unknown",
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
// ── Tool: adorbis_reason ──────────────────────────────────────────────────────
|
|
141
|
+
server.tool("adorbis_reason", "Solve complex problems requiring multi-step reasoning, math, logic, or analysis using Adorbis AI's reasoning department. Routes to frontier reasoning models automatically.", {
|
|
142
|
+
problem: zod_1.z.string().describe("The problem, question, or task requiring deep reasoning or analysis"),
|
|
143
|
+
context: zod_1.z.string().optional().describe("Additional context or data to consider"),
|
|
144
|
+
max_tokens: zod_1.z.number().int().min(1).max(8192).optional().default(4096),
|
|
145
|
+
}, async ({ problem, context, max_tokens }) => {
|
|
146
|
+
const messages = [
|
|
147
|
+
{
|
|
148
|
+
role: "system",
|
|
149
|
+
content: "You are an expert analyst and problem solver. Think step by step. Show your reasoning clearly before giving a final answer.",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
role: "user",
|
|
153
|
+
content: context ? `${problem}\n\nContext:\n${context}` : problem,
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
const result = await callAdorbis(messages, "adorbis/reason", max_tokens);
|
|
157
|
+
const reply = result.choices[0]?.message?.content ?? "";
|
|
158
|
+
return {
|
|
159
|
+
content: [{ type: "text", text: reply }],
|
|
160
|
+
structuredContent: { reply, model: result.model, department: "adorbis/reason" },
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
// ── Tool: adorbis_write ───────────────────────────────────────────────────────
|
|
164
|
+
server.tool("adorbis_write", "Generate long-form written content — documentation, articles, emails, reports, summaries — using Adorbis AI's writing-optimized department.", {
|
|
165
|
+
task: zod_1.z.string().describe("The writing task — e.g. 'write a README for my project', 'draft an email to investors', 'summarize this document'"),
|
|
166
|
+
content: zod_1.z.string().optional().describe("Source material, outline, or context for the writing task"),
|
|
167
|
+
tone: zod_1.z.enum(["professional", "casual", "technical", "friendly"]).optional().default("professional").describe("Tone of the written output"),
|
|
168
|
+
max_tokens: zod_1.z.number().int().min(1).max(8192).optional().default(4096),
|
|
169
|
+
}, async ({ task, content, tone, max_tokens }) => {
|
|
170
|
+
const systemPrompt = `You are an expert writer. Tone: ${tone}. Write clearly and concisely. No filler phrases.`;
|
|
171
|
+
const userMessage = content ? `${task}\n\nSource material:\n${content}` : task;
|
|
172
|
+
const messages = [
|
|
173
|
+
{ role: "system", content: systemPrompt },
|
|
174
|
+
{ role: "user", content: userMessage },
|
|
175
|
+
];
|
|
176
|
+
const result = await callAdorbis(messages, "adorbis/write", max_tokens);
|
|
177
|
+
const reply = result.choices[0]?.message?.content ?? "";
|
|
178
|
+
return {
|
|
179
|
+
content: [{ type: "text", text: reply }],
|
|
180
|
+
structuredContent: { reply, model: result.model, department: "adorbis/write", tone },
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
// ── Tool: adorbis_balance ─────────────────────────────────────────────────────
|
|
184
|
+
server.tool("adorbis_balance", "Check your Adorbis AI credit balance, current plan, and account status. Useful for monitoring usage and knowing when to top up.", {}, async () => {
|
|
185
|
+
if (!API_KEY) {
|
|
186
|
+
return {
|
|
187
|
+
content: [{
|
|
188
|
+
type: "text",
|
|
189
|
+
text: "❌ ADORBIS_API_KEY is not set. Set it in your MCP environment variables.\n\nGet a free key at https://ai.adorbistech.com",
|
|
190
|
+
}],
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// Make a minimal test call to verify key works
|
|
194
|
+
try {
|
|
195
|
+
const res = await fetch(`${API_URL}/chat/completions`, {
|
|
196
|
+
method: "POST",
|
|
197
|
+
headers: {
|
|
198
|
+
Authorization: `Bearer ${API_KEY}`,
|
|
199
|
+
"Content-Type": "application/json",
|
|
200
|
+
},
|
|
201
|
+
body: JSON.stringify({
|
|
202
|
+
model: "adorbis/quick",
|
|
203
|
+
messages: [{ role: "user", content: "hi" }],
|
|
204
|
+
max_tokens: 1,
|
|
205
|
+
}),
|
|
206
|
+
});
|
|
207
|
+
if (res.status === 401) {
|
|
208
|
+
return {
|
|
209
|
+
content: [{ type: "text", text: "❌ Invalid API key. Get a valid key at https://ai.adorbistech.com" }],
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
if (res.status === 402) {
|
|
213
|
+
return {
|
|
214
|
+
content: [{ type: "text", text: "⚠️ Credits exhausted. Top up at https://ai.adorbistech.com/dashboard" }],
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
const keyPreview = `${API_KEY.substring(0, 12)}...`;
|
|
218
|
+
return {
|
|
219
|
+
content: [{
|
|
220
|
+
type: "text",
|
|
221
|
+
text: `✅ Adorbis AI connected\n\nKey: ${keyPreview}\nStatus: Active\n\nManage your account: https://ai.adorbistech.com/dashboard`,
|
|
222
|
+
}],
|
|
223
|
+
structuredContent: {
|
|
224
|
+
connected: true,
|
|
225
|
+
key_preview: keyPreview,
|
|
226
|
+
dashboard_url: "https://ai.adorbistech.com/dashboard",
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
return {
|
|
232
|
+
content: [{ type: "text", text: `❌ Network error: ${err.message}` }],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
// ── Tool: adorbis_models ──────────────────────────────────────────────────────
|
|
237
|
+
server.tool("adorbis_models", "List all available Adorbis AI departments and what they route to. Use this to understand which department to use for different tasks.", {}, async () => {
|
|
238
|
+
const models = [
|
|
239
|
+
{
|
|
240
|
+
department: "adorbis/quick",
|
|
241
|
+
description: "Fast responses — best for chat, Q&A, simple tasks",
|
|
242
|
+
use_cases: ["quick questions", "chat", "classification", "short summaries"],
|
|
243
|
+
speed: "fastest",
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
department: "adorbis/coder",
|
|
247
|
+
description: "Code generation, debugging, review, and explanation",
|
|
248
|
+
use_cases: ["write code", "debug", "code review", "explain code", "refactor"],
|
|
249
|
+
speed: "fast",
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
department: "adorbis/auto",
|
|
253
|
+
description: "Smart routing — picks the best model for your task automatically",
|
|
254
|
+
use_cases: ["mixed workloads", "when unsure", "general purpose"],
|
|
255
|
+
speed: "varies",
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
department: "adorbis/write",
|
|
259
|
+
description: "Long-form writing — documentation, articles, emails, reports",
|
|
260
|
+
use_cases: ["README files", "blog posts", "documentation", "emails", "summaries"],
|
|
261
|
+
speed: "medium",
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
department: "adorbis/reason",
|
|
265
|
+
description: "Complex reasoning — math, logic, analysis, multi-step problems",
|
|
266
|
+
use_cases: ["math problems", "logical reasoning", "data analysis", "research"],
|
|
267
|
+
speed: "slower but thorough",
|
|
268
|
+
},
|
|
269
|
+
];
|
|
270
|
+
const text = models.map(m => `**${m.department}**\n${m.description}\nUse for: ${m.use_cases.join(", ")}\nSpeed: ${m.speed}`).join("\n\n");
|
|
271
|
+
return {
|
|
272
|
+
content: [{ type: "text", text: `Available Adorbis AI departments:\n\n${text}` }],
|
|
273
|
+
structuredContent: { departments: models },
|
|
274
|
+
};
|
|
275
|
+
});
|
|
276
|
+
// ── Tool: adorbis_multi_turn ──────────────────────────────────────────────────
|
|
277
|
+
server.tool("adorbis_multi_turn", "Have a multi-turn conversation with Adorbis AI by passing the full message history. Use this when you need to maintain context across multiple exchanges.", {
|
|
278
|
+
messages: zod_1.z.array(zod_1.z.object({
|
|
279
|
+
role: zod_1.z.enum(["user", "assistant", "system"]),
|
|
280
|
+
content: zod_1.z.string(),
|
|
281
|
+
})).describe("Full conversation history as an array of {role, content} objects"),
|
|
282
|
+
department: zod_1.z.enum(DEPARTMENTS).optional().default("adorbis/auto"),
|
|
283
|
+
max_tokens: zod_1.z.number().int().min(1).max(8192).optional().default(2048),
|
|
284
|
+
}, async ({ messages, department, max_tokens }) => {
|
|
285
|
+
const result = await callAdorbis(messages, department, max_tokens);
|
|
286
|
+
const reply = result.choices[0]?.message?.content ?? "";
|
|
287
|
+
return {
|
|
288
|
+
content: [{ type: "text", text: reply }],
|
|
289
|
+
structuredContent: {
|
|
290
|
+
reply,
|
|
291
|
+
model: result.model,
|
|
292
|
+
department,
|
|
293
|
+
message_count: messages.length,
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
});
|
|
297
|
+
// ── Start server ──────────────────────────────────────────────────────────────
|
|
298
|
+
async function main() {
|
|
299
|
+
if (!API_KEY) {
|
|
300
|
+
process.stderr.write("[adorbis-mcp] WARNING: ADORBIS_API_KEY is not set. " +
|
|
301
|
+
"Tools will return errors until the key is configured. " +
|
|
302
|
+
"Get a free key at https://ai.adorbistech.com\n");
|
|
303
|
+
}
|
|
304
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
305
|
+
await server.connect(transport);
|
|
306
|
+
process.stderr.write("[adorbis-mcp] Adorbis AI MCP server running on stdio\n");
|
|
307
|
+
}
|
|
308
|
+
main().catch(err => {
|
|
309
|
+
process.stderr.write(`[adorbis-mcp] Fatal error: ${err.message}\n`);
|
|
310
|
+
process.exit(1);
|
|
311
|
+
});
|
|
312
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@adorbistech/mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Adorbis AI MCP server — one key, every model, auto-routed. Use Adorbis AI from Claude Code, Cursor, Cline, and any MCP-compatible tool.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"adorbis-mcp": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"start": "node dist/index.js",
|
|
12
|
+
"dev": "ts-node src/index.ts",
|
|
13
|
+
"prepublish": "npm run build"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"model-context-protocol",
|
|
18
|
+
"adorbis",
|
|
19
|
+
"ai",
|
|
20
|
+
"llm",
|
|
21
|
+
"openai",
|
|
22
|
+
"anthropic",
|
|
23
|
+
"claude",
|
|
24
|
+
"cursor",
|
|
25
|
+
"cline",
|
|
26
|
+
"claude-code"
|
|
27
|
+
],
|
|
28
|
+
"author": "Adorbis Technologies LLC",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"homepage": "https://ai.adorbistech.com",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/adorbistech/adorbis-mcp.git"
|
|
34
|
+
},
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/adorbistech/adorbis-mcp/issues"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^20.0.0",
|
|
43
|
+
"typescript": "^5.3.0"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18"
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"dist",
|
|
50
|
+
"README.md",
|
|
51
|
+
"LICENSE"
|
|
52
|
+
]
|
|
53
|
+
}
|