@o-t-p-y/mcp 0.3.3 → 0.4.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/README.fa.md ADDED
@@ -0,0 +1,114 @@
1
+ <div dir="rtl">
2
+
3
+ # @o-t-p-y/mcp
4
+
5
+ سرور رسمی Model Context Protocol (MCP) برای [OTPy.ir](https://otpy.ir) — تعامل با حساب OTPy، مشاهده مصرف، ارسال کد آزمایشی و مدیریت کلیدها مستقیماً از داخل دستیارهای هوش مصنوعی.
6
+
7
+ ## دو نوع اعتبار
8
+
9
+ این سرور می‌تواند از دو اعتبار متفاوت استفاده کند که هر کدام کاربرد جدایی دارند:
10
+
11
+ | اعتبار | متغیر محیطی / فلگ | کاربرد |
12
+ |---|---|---|
13
+ | **کلید API** (پروژه‌محور) | `OTPY_API_KEY` / `--api-key` | احراز هویت API پیامک و مصرف: `get_usage`، `send_test_otp`، `verify_test_otp`. همان کلید `otpy_...` است که برای ارسال OTP واقعی در محصول استفاده می‌کنید. |
14
+ | **کلید کاربری** (کاربرمحور) | `OTPY_USER_KEY` / `--user-key` | احراز هویت خواندن پروژه و کنترل زنده‌ی اسکوپ ابزارهای صورتحساب/نوشتن. این سکرت جداگانه‌ی `otpy_uk_...` را از صفحه‌ی **Integration** (`/integrate`) در [dash.otpy.ir](https://dash.otpy.ir) بگیرید. |
15
+
16
+ ابزارهای فقط-خواندنیِ APIمحور (`get_usage` و `get_integration_snippet`) فقط کلید API می‌خواهند. خواندن پروژه‌ها (`list_projects` و `list_otp_messages`) به کلید کاربری فعال نیاز دارد و `list_transactions` علاوه بر آن اسکوپ `billing` می‌خواهد. هر ابزارِ نیازمند کلید کاربری، بدون آن رد می‌شود.
17
+
18
+ ## نصب / راه‌اندازی
19
+
20
+ ### Cursor
21
+
22
+ به فایل `.cursor/mcp.json` یا Cursor Settings → MCP اضافه کنید:
23
+
24
+ ```json
25
+ {
26
+ "mcpServers": {
27
+ "otpy": {
28
+ "command": "npx",
29
+ "args": ["-y", "@o-t-p-y/mcp"],
30
+ "env": {
31
+ "OTPY_API_KEY": "otpy_your_api_key_here",
32
+ "OTPY_USER_KEY": "otpy_uk_your_user_key_here"
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Claude Desktop
40
+
41
+ به `claude_desktop_config.json` اضافه کنید:
42
+
43
+ ```json
44
+ {
45
+ "mcpServers": {
46
+ "otpy": {
47
+ "command": "npx",
48
+ "args": ["-y", "@o-t-p-y/mcp"],
49
+ "env": {
50
+ "OTPY_API_KEY": "otpy_your_api_key_here",
51
+ "OTPY_USER_KEY": "otpy_uk_your_user_key_here"
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ می‌توانید اسنیپت آماده MCP را مستقیماً از صفحه‌ی **Integration** (`/integrate`) در [dash.otpy.ir](https://dash.otpy.ir) کپی کنید.
59
+
60
+ ## مدل اسکوپ (`user_keys`)
61
+
62
+ هر کلید کاربری دقیقاً دو اسکوپ مستقل دارد — `write` و `billing` — به‌علاوه فلگ `root` که همیشه به‌صورت مشتق `write AND billing` محاسبه می‌شود و هرگز مستقیم تنظیم نمی‌شود. هیچ مجوز سوم جداگانه‌ای وجود ندارد.
63
+
64
+ | اسکوپ | دسترسی |
65
+ |---|---|
66
+ | `write` | `send_test_otp`، `verify_test_otp`، `create_api_key` |
67
+ | `billing` | `get_balance`، `list_api_keys`، `list_transactions` |
68
+ | `root` (مشتق: هر دو فعال) | همه موارد بالا — فقط مخفف «هر دو را دارد»، نه اسکوپ جدا |
69
+
70
+ کلید کاربری با اسکوپ‌های موردنیاز را در صفحه‌ی **Integration** (`/integrate`) داشبورد بسازید (ساخت/لیست/لغو و تغییر `write`/`billing` همه آنجاست). سکرت خام `otpy_uk_...` فقط یک بار هنگام ساخت نمایش داده می‌شود — بلافاصله آن را در `OTPY_USER_KEY` کپی کنید.
71
+
72
+ ### تأیید اسکوپ چگونه کار می‌کند
73
+
74
+ هر فراخوانی ابزارِ محافظت‌شده با `write` یا `billing` یک **درخواست شبکه واقعی و زنده** به `GET /v1/user-keys/self` روی API می‌زند و `OTPY_USER_KEY` شما را به‌عنوان Bearer ارائه می‌دهد. API آن را هش کرده و ردیف زنده جدول `user_keys` را بررسی می‌کند — اسکوپ‌های این اعتبار هرگز نمی‌توانند به‌صورت محلی جعل یا دور زده شوند. اگر کلید لغو شود یا اسکوپ‌هایش در داشبورد کم شود، همان فراخوانی بعدی بلافاصله آن را منعکس می‌کند؛ هیچ کش محلی از اسکوپ‌ها وجود ندارد.
75
+
76
+ **هیچ دورزدن سمت کلاینتی وجود ندارد.** نسخه‌های قبلی این سرور فلگ محلی `OTPY_MCP_WRITE` / `--write` داشتند که فقط در کانفیگ همین پروسه زندگی می‌کرد — هرگز سمت سرور تأیید نمی‌شد، پس هر کسی با دسترسی به env کلاینت خودش می‌توانست آن را ست کند و گیت ابزارهای نوشتن را دور بزند. آن فلگ کاملاً حذف شده است. اگر هنوز `OTPY_MCP_WRITE`/`--write` در کانفیگ قدیمی دارید، الان کاملاً بی‌اثر است: `parseConfig` اصلاً آن را نمی‌خواند، و تنها چیزی که دسترسی write/billing می‌دهد یک `user_key` واقعی با اسکوپ متناظر است که در هر فراخوانی از طریق شبکه تأیید می‌شود.
77
+
78
+ اگر اصلاً `OTPY_USER_KEY` تنظیم نشده باشد، همه ابزارهای کاربرمحور رد می‌شوند (fail closed) — فقط ابزارهای بدون اسکوپ (`get_usage`، `get_integration_snippet`) با کلید API پروژه کار می‌کنند.
79
+
80
+ ### گرنت‌های پروژه
81
+
82
+ یک کلید کاربری می‌تواند به پروژه‌های مشخص محدود شود (`user_project_grants`، در همان صفحه‌ی Integration). قاعده:
83
+
84
+ - **صفر ردیف گرنت** → نامحدود: کلید روی هر پروژه‌ای که مالکش به آن دسترسی دارد کار می‌کند.
85
+ - **یک یا چند ردیف گرنت** → محدود به دقیقاً همان شناسه‌های پروژه.
86
+
87
+ هر فراخوانی ابزاری که آرگومان `project_id` دارد، این را همراه با چک اسکوپ بررسی می‌کند (همان درخواست شبکه زنده) و اگر کلید به آن پروژه گرنت نشده باشد، فراخوانی رد می‌شود.
88
+
89
+ ## ابزارها
90
+
91
+ | ابزار | اسکوپ لازم | توضیح |
92
+ |---|---|---|
93
+ | `get_usage` | ندارد | مصرف امروز یا بازه‌ی شامل ابتدا و انتها تا ۹۰ روز |
94
+ | `list_projects` | کلید کاربری | فهرست پروژه‌های قابل مشاهده برای کلید کاربری |
95
+ | `list_otp_messages` | کلید کاربری | فهرست پیامک‌ها؛ status داخلی است و `verified_at` تایید را مشخص می‌کند، نه تحویل اپراتور |
96
+ | `list_transactions` | `billing` | فهرست تراکنش‌های کیف پول به تومان |
97
+ | `get_balance` | `billing` | موجودی فعلی کیف پول |
98
+ | `list_api_keys` | `billing` | لیست کلیدهای API پروژه و محدودیت‌ها |
99
+ | `get_integration_snippet` | ندارد | تولید اسنیپت کد آماده (nodejs، python، go، php، curl، csharp) |
100
+ | `send_test_otp` | `write` | ارسال کد OTP آزمایشی به یک شماره |
101
+ | `verify_test_otp` | `write` | تایید کد OTP آزمایشی |
102
+ | `create_api_key` | `write` | ساخت کلید API جدید با محدودیت‌های دلخواه |
103
+
104
+ اسنیپت‌های ادغام همیشه `OTPY_API_KEY` را از محیط اجرا می‌خوانند؛ سرور MCP هرگز کلید API خام پیکربندی‌شده را داخل کد تولیدشده قرار نمی‌دهد.
105
+
106
+ ## مستندات بیشتر
107
+
108
+ ویکی کامل (انگلیسی و فارسی) در [github.com/o-t-p-y/mcp/wiki](https://github.com/o-t-p-y/mcp/wiki) — از جمله راهنمای نصب، مرجع ابزارها و مدل اسکوپ.
109
+
110
+ ## مجوز
111
+
112
+ MIT © [OTPy.ir](https://otpy.ir)
113
+
114
+ </div>
package/README.md CHANGED
@@ -8,10 +8,10 @@ This server can use up to two different OTPy credentials, each for a different p
8
8
 
9
9
  | Credential | Env var / flag | What it's for |
10
10
  |---|---|---|
11
- | **API key** (project-scoped) | `OTPY_API_KEY` / `--api-key` | Read/write access to OTP-related endpoints: `get_usage`, `send_test_otp`, `verify_test_otp`, `get_integration_snippet`. This is the same `otpy_...` key you use to send real OTPs from your product. |
12
- | **User key** (user-scoped) | `OTPY_USER_KEY` / `--user-key` | Real, server-verified scope gating for write- and billing-sensitive tools (see below). This is a separate `otpy_uk_...` secret, obtained from the **Integrate** tab on [dash.otpy.ir](https://dash.otpy.ir). |
11
+ | **API key** (project-scoped) | `OTPY_API_KEY` / `--api-key` | Authenticates the OTP API and usage calls: `get_usage`, `send_test_otp`, `verify_test_otp`. This is the same `otpy_...` key you use to send real OTPs from your product. |
12
+ | **User key** (user-scoped) | `OTPY_USER_KEY` / `--user-key` | Authenticates project reads and provides live scope gating for billing/write tools. This is a separate `otpy_uk_...` secret, obtained from the **Integration** page (`/integrate`) on [dash.otpy.ir](https://dash.otpy.ir). |
13
13
 
14
- You do not strictly need a user key to use the read-only tools (`get_usage`, `get_integration_snippet`) only the API key is required for those. But any tool that requires the `write` or `billing` scope (see below) is denied outright if no user key is configured.
14
+ The API-key-only tools are `get_usage` and `get_integration_snippet`. Project reads (`list_projects`, `list_otp_messages`) use the enabled user key, while `list_transactions` also requires its `billing` scope. Any tool that requires a user key is denied outright if none is configured.
15
15
 
16
16
  ## Installation / Setup
17
17
 
@@ -53,7 +53,7 @@ Add to `claude_desktop_config.json`:
53
53
  }
54
54
  ```
55
55
 
56
- You can also copy the pre-configured MCP snippet directly from the **Integrate** tab on [dash.otpy.ir](https://dash.otpy.ir).
56
+ You can also copy the pre-configured MCP snippet directly from the **Integration** page (`/integrate`) on [dash.otpy.ir](https://dash.otpy.ir).
57
57
 
58
58
  ## Scope model (`user_keys`)
59
59
 
@@ -62,10 +62,10 @@ Every user key has exactly two independently toggleable scopes, `write` and `bil
62
62
  | Scope | Grants |
63
63
  |---|---|
64
64
  | `write` | `send_test_otp`, `verify_test_otp`, `create_api_key` |
65
- | `billing` | `get_balance`, `list_api_keys` |
65
+ | `billing` | `get_balance`, `list_api_keys`, `list_transactions` |
66
66
  | `root` (derived: `write` and `billing` both true) | Everything above — not a separate scope, just shorthand for "has both". |
67
67
 
68
- Create a user key with the scopes you need on the **Integrate** tab of [dash.otpy.ir](https://dash.otpy.ir) (create/list/revoke and toggling `write`/`billing` all live there). The raw `otpy_uk_...` secret is shown exactly once at creation time — copy it into `OTPY_USER_KEY` immediately.
68
+ Create a user key with the scopes you need on the **Integration** page (`/integrate`) of [dash.otpy.ir](https://dash.otpy.ir) (create/list/revoke and toggling `write`/`billing` all live there). The raw `otpy_uk_...` secret is shown exactly once at creation time — copy it into `OTPY_USER_KEY` immediately.
69
69
 
70
70
  ### How scope verification actually works
71
71
 
@@ -73,11 +73,11 @@ Every call to a `write`- or `billing`-gated tool makes a **real, live network re
73
73
 
74
74
  **There is no client-side override of any kind.** Earlier versions of this server had a local `OTPY_MCP_WRITE` / `--write` flag that only ever lived in this process's own config — it was never verified against the server, so anyone with shell/env access to their own MCP client could set it and bypass write-tool gating entirely. That flag has been removed outright (not deprecated, not silently downgraded to "restrict only" — deleted). If you still have `OTPY_MCP_WRITE`/`--write` set in an old config, it is now a complete no-op: `parseConfig` doesn't read it at all, and the only thing that can grant write/billing access is a real `user_key` with the matching scope, verified over the network on every call.
75
75
 
76
- If no `OTPY_USER_KEY` is configured at all, every `write`/`billing`-gated tool is denied (fails closed) — only the unscoped read tools (`get_usage`, `get_integration_snippet`) keep working with just an API key.
76
+ If no `OTPY_USER_KEY` is configured at all, every user-key tool is denied (fails closed) — only the unscoped read tools (`get_usage`, `get_integration_snippet`) keep working with the project API key.
77
77
 
78
78
  ### Project grants
79
79
 
80
- A user key can optionally be restricted to specific projects (`user_project_grants`, set on the same Integrate tab). The rule:
80
+ A user key can optionally be restricted to specific projects (`user_project_grants`, set on the same Integration page). The rule:
81
81
 
82
82
  - **Zero grant rows** → unrestricted: the key can act on any project its owner can reach.
83
83
  - **One or more grant rows** → restricted to exactly those project ids.
@@ -88,7 +88,10 @@ Whenever a tool call includes a `project_id` argument, the server checks this al
88
88
 
89
89
  | Tool | Required scope | Description |
90
90
  |---|---|---|
91
- | `get_usage` | none | Daily quota and free/paid usage breakdown |
91
+ | `get_usage` | none | Today's usage, or usage for an inclusive date range up to 90 days |
92
+ | `list_projects` | user key | List projects visible to the user key |
93
+ | `list_otp_messages` | user key | List messages; status is internal and `verified_at` marks verification, not carrier delivery |
94
+ | `list_transactions` | `billing` | List wallet ledger transactions in tomans |
92
95
  | `get_balance` | `billing` | Current wallet balance and pricing details |
93
96
  | `list_api_keys` | `billing` | List project API keys and limits |
94
97
  | `get_integration_snippet` | none | Generate copyable code snippets |
@@ -96,6 +99,8 @@ Whenever a tool call includes a `project_id` argument, the server checks this al
96
99
  | `verify_test_otp` | `write` | Verify a test OTP code |
97
100
  | `create_api_key` | `write` | Create a new API key with custom limits |
98
101
 
102
+ Integration snippets always read `OTPY_API_KEY` from the runtime environment; the MCP server never embeds the configured raw API key in generated code.
103
+
99
104
  ## License
100
105
 
101
106
  MIT © [OTPy.ir](https://otpy.ir)
package/dist/index.d.ts CHANGED
@@ -12,7 +12,38 @@ export declare const TOOLS: ({
12
12
  inputSchema: {
13
13
  type: string;
14
14
  properties: {
15
+ from: {
16
+ type: string;
17
+ format: string;
18
+ description: string;
19
+ };
20
+ to: {
21
+ type: string;
22
+ format: string;
23
+ description: string;
24
+ };
25
+ project_id?: undefined;
26
+ limit?: undefined;
27
+ language?: undefined;
28
+ phone?: undefined;
29
+ code?: undefined;
30
+ name?: undefined;
31
+ limit_daily_otp?: undefined;
32
+ limit_weekly_otp?: undefined;
33
+ limit_monthly_otp?: undefined;
34
+ };
35
+ required: never[];
36
+ };
37
+ } | {
38
+ name: string;
39
+ description: string;
40
+ inputSchema: {
41
+ type: string;
42
+ properties: {
43
+ from?: undefined;
44
+ to?: undefined;
15
45
  project_id?: undefined;
46
+ limit?: undefined;
16
47
  language?: undefined;
17
48
  phone?: undefined;
18
49
  code?: undefined;
@@ -33,6 +64,37 @@ export declare const TOOLS: ({
33
64
  type: string;
34
65
  description: string;
35
66
  };
67
+ limit: {
68
+ type: string;
69
+ minimum: number;
70
+ maximum: number;
71
+ description: string;
72
+ };
73
+ from?: undefined;
74
+ to?: undefined;
75
+ language?: undefined;
76
+ phone?: undefined;
77
+ code?: undefined;
78
+ name?: undefined;
79
+ limit_daily_otp?: undefined;
80
+ limit_weekly_otp?: undefined;
81
+ limit_monthly_otp?: undefined;
82
+ };
83
+ required: string[];
84
+ };
85
+ } | {
86
+ name: string;
87
+ description: string;
88
+ inputSchema: {
89
+ type: string;
90
+ properties: {
91
+ project_id: {
92
+ type: string;
93
+ description: string;
94
+ };
95
+ from?: undefined;
96
+ to?: undefined;
97
+ limit?: undefined;
36
98
  language?: undefined;
37
99
  phone?: undefined;
38
100
  code?: undefined;
@@ -54,7 +116,10 @@ export declare const TOOLS: ({
54
116
  enum: string[];
55
117
  description: string;
56
118
  };
119
+ from?: undefined;
120
+ to?: undefined;
57
121
  project_id?: undefined;
122
+ limit?: undefined;
58
123
  phone?: undefined;
59
124
  code?: undefined;
60
125
  name?: undefined;
@@ -74,7 +139,10 @@ export declare const TOOLS: ({
74
139
  type: string;
75
140
  description: string;
76
141
  };
142
+ from?: undefined;
143
+ to?: undefined;
77
144
  project_id?: undefined;
145
+ limit?: undefined;
78
146
  language?: undefined;
79
147
  code?: undefined;
80
148
  name?: undefined;
@@ -98,7 +166,10 @@ export declare const TOOLS: ({
98
166
  type: string;
99
167
  description: string;
100
168
  };
169
+ from?: undefined;
170
+ to?: undefined;
101
171
  project_id?: undefined;
172
+ limit?: undefined;
102
173
  language?: undefined;
103
174
  name?: undefined;
104
175
  limit_daily_otp?: undefined;
@@ -133,6 +204,9 @@ export declare const TOOLS: ({
133
204
  type: string;
134
205
  description: string;
135
206
  };
207
+ from?: undefined;
208
+ to?: undefined;
209
+ limit?: undefined;
136
210
  language?: undefined;
137
211
  phone?: undefined;
138
212
  code?: undefined;
package/dist/index.js CHANGED
@@ -24,13 +24,45 @@ export function parseConfig(args = process.argv.slice(2), env = process.env) {
24
24
  export const TOOLS = [
25
25
  {
26
26
  name: "get_usage",
27
- description: "Get today's OTP usage statistics (free used, free quota, paid count, daily limit).",
27
+ description: "Get OTP usage statistics. Without dates, values cover today. With both from and to (required together), free_used_today and paid_today are totals for the inclusive range up to 90 days, while free_quota_today and daily_limit remain the current plan limits.",
28
28
  inputSchema: {
29
29
  type: "object",
30
- properties: {},
30
+ properties: {
31
+ from: { type: "string", format: "date", description: "Inclusive start date (YYYY-MM-DD); required together with to." },
32
+ to: { type: "string", format: "date", description: "Inclusive end date (YYYY-MM-DD); required together with from." },
33
+ },
31
34
  required: [],
32
35
  },
33
36
  },
37
+ {
38
+ name: "list_projects",
39
+ description: "List the projects visible to the configured OTPY_USER_KEY. This is a read-only user-key operation.",
40
+ inputSchema: { type: "object", properties: {}, required: [] },
41
+ },
42
+ {
43
+ name: "list_otp_messages",
44
+ description: "List recent OTP messages for a project. Requires an enabled OTPY_USER_KEY, but no write or billing scope. Status is internal processing state and does not provide carrier delivery receipts; verified_at marks user verification.",
45
+ inputSchema: {
46
+ type: "object",
47
+ properties: {
48
+ project_id: { type: "string", description: "Project ID." },
49
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Number of messages to return (default 50, maximum 100)." },
50
+ },
51
+ required: ["project_id"],
52
+ },
53
+ },
54
+ {
55
+ name: "list_transactions",
56
+ description: "List recent wallet ledger transactions for a project. Requires an enabled OTPY_USER_KEY with the billing scope. Amounts are in tomans.",
57
+ inputSchema: {
58
+ type: "object",
59
+ properties: {
60
+ project_id: { type: "string", description: "Project ID." },
61
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Number of transactions to return (default 50, maximum 100)." },
62
+ },
63
+ required: ["project_id"],
64
+ },
65
+ },
34
66
  {
35
67
  name: "get_balance",
36
68
  description: "Get the current wallet balance for a project. Requires a user_key with the 'billing' scope (see README).",
@@ -112,7 +144,8 @@ const WRITE_TOOLS = ["send_test_otp", "verify_test_otp", "create_api_key"];
112
144
  // Tools requiring the `billing` scope on the presented user_key.
113
145
  // Mapping per the plan: billing -> get_balance/list_api_keys/topup endpoints.
114
146
  // `root` is never a separate gate -- it is just "has both write AND billing".
115
- const BILLING_TOOLS = ["get_balance", "list_api_keys"];
147
+ const BILLING_TOOLS = ["get_balance", "list_api_keys", "list_transactions"];
148
+ const USER_KEY_TOOLS = ["list_projects", "list_otp_messages", "list_transactions"];
116
149
  /**
117
150
  * Real, server-verified scope check -- a live network call to
118
151
  * GET /v1/user-keys/self (packages/db/migrations/0018_user_key_authenticate.sql
@@ -170,23 +203,24 @@ function scopeDeniedResult(text) {
170
203
  export async function handleToolCall(name, args, config, fetchFn = globalThis.fetch) {
171
204
  const needsWrite = WRITE_TOOLS.includes(name);
172
205
  const needsBilling = BILLING_TOOLS.includes(name);
173
- if (needsWrite || needsBilling) {
206
+ const needsUserKey = USER_KEY_TOOLS.includes(name);
207
+ if (needsWrite || needsBilling || needsUserKey) {
174
208
  const projectId = typeof args.project_id === "string" ? args.project_id : undefined;
175
209
  const verification = await verifyUserKeyScopes(config, fetchFn, projectId);
176
210
  if (!verification.ok) {
177
- return scopeDeniedResult(`❌ Could not verify this MCP connection's user_key scopes: ${verification.reason}\nConfigure a valid user_key (OTPY_USER_KEY / --user-key), obtained from the "Integrate" tab on https://dash.otpy.ir.`);
211
+ return scopeDeniedResult(`❌ Could not verify this MCP connection's user_key scopes: ${verification.reason}\nConfigure a valid user_key (OTPY_USER_KEY / --user-key), obtained from the "Integration" page at https://dash.otpy.ir/integrate.`);
178
212
  }
179
213
  if (!verification.scopes.enabled) {
180
- return scopeDeniedResult(`❌ No valid user_key is configured for this MCP connection.\nThis tool requires a user_key with the required scope. Create one on the "Integrate" tab at https://dash.otpy.ir and set OTPY_USER_KEY (or --user-key).`);
214
+ return scopeDeniedResult(`❌ No valid user_key is configured for this MCP connection.\nThis tool requires a user_key with the required scope. Create one on the "Integration" page at https://dash.otpy.ir/integrate and set OTPY_USER_KEY (or --user-key).`);
181
215
  }
182
216
  if (needsWrite && !verification.scopes.write) {
183
- return scopeDeniedResult(`❌ This MCP connection's user_key does not have the 'write' scope.\nWrite actions (sending test OTPs, creating/modifying keys) require a user_key with write enabled. Configure this on the "Integrate" tab at https://dash.otpy.ir.`);
217
+ return scopeDeniedResult(`❌ This MCP connection's user_key does not have the 'write' scope.\nWrite actions (sending test OTPs, creating/modifying keys) require a user_key with write enabled. Configure this on the "Integration" page at https://dash.otpy.ir/integrate.`);
184
218
  }
185
219
  if (needsBilling && !verification.scopes.billing) {
186
- return scopeDeniedResult(`❌ This MCP connection's user_key does not have the 'billing' scope.\nBilling-related reads (balance, API key listing) require a user_key with billing enabled. Configure this on the "Integrate" tab at https://dash.otpy.ir.`);
220
+ return scopeDeniedResult(`❌ This MCP connection's user_key does not have the 'billing' scope.\nBilling-related reads (balance, API key listing) require a user_key with billing enabled. Configure this on the "Integration" page at https://dash.otpy.ir/integrate.`);
187
221
  }
188
222
  if (projectId && verification.projectAllowed === false) {
189
- return scopeDeniedResult(`❌ This MCP connection's user_key is not granted access to project ${projectId}.\nEither omit project_id, or grant this user_key access to that project on the "Integrate" tab at https://dash.otpy.ir.`);
223
+ return scopeDeniedResult(`❌ This MCP connection's user_key is not granted access to project ${projectId}.\nEither omit project_id, or grant this user_key access to that project on the "Integration" page at https://dash.otpy.ir/integrate.`);
190
224
  }
191
225
  }
192
226
  if (name === "get_usage") {
@@ -194,11 +228,51 @@ export async function handleToolCall(name, args, config, fetchFn = globalThis.fe
194
228
  return { isError: true, content: [{ type: "text", text: "Error: OTPY_API_KEY is not configured." }] };
195
229
  }
196
230
  try {
197
- const res = await fetchFn(`${config.baseUrl}/v1/usage`, {
231
+ const url = new URL(`${config.baseUrl}/v1/usage`);
232
+ if (typeof args.from === "string")
233
+ url.searchParams.set("from", args.from);
234
+ if (typeof args.to === "string")
235
+ url.searchParams.set("to", args.to);
236
+ const res = await fetchFn(url.toString(), {
198
237
  headers: { authorization: `Bearer ${config.apiKey}` },
199
238
  });
200
239
  const data = await res.json();
201
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
240
+ return { isError: !res.ok, content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
241
+ }
242
+ catch (err) {
243
+ return { isError: true, content: [{ type: "text", text: `Network error: ${String(err)}` }] };
244
+ }
245
+ }
246
+ if (name === "list_projects") {
247
+ try {
248
+ const res = await fetchFn(`${config.baseUrl}/v1/mcp-scope/projects`, {
249
+ headers: { authorization: `Bearer ${config.userKey}` },
250
+ });
251
+ const data = await res.json();
252
+ return { isError: !res.ok, content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
253
+ }
254
+ catch (err) {
255
+ return { isError: true, content: [{ type: "text", text: `Network error: ${String(err)}` }] };
256
+ }
257
+ }
258
+ if (name === "list_otp_messages" || name === "list_transactions") {
259
+ const projectId = typeof args.project_id === "string" && args.project_id ? args.project_id : null;
260
+ if (!projectId) {
261
+ return { isError: true, content: [{ type: "text", text: "Error: project_id is required." }] };
262
+ }
263
+ const limit = typeof args.limit === "number" ? args.limit : 50;
264
+ if (!Number.isInteger(limit) || limit < 1 || limit > 100) {
265
+ return { isError: true, content: [{ type: "text", text: "Error: limit must be an integer between 1 and 100." }] };
266
+ }
267
+ const endpoint = name === "list_otp_messages" ? "otp-messages" : "ledger";
268
+ const url = new URL(`${config.baseUrl}/v1/mcp-scope/projects/${encodeURIComponent(projectId)}/${endpoint}`);
269
+ url.searchParams.set("limit", String(limit));
270
+ try {
271
+ const res = await fetchFn(url.toString(), {
272
+ headers: { authorization: `Bearer ${config.userKey}` },
273
+ });
274
+ const data = await res.json();
275
+ return { isError: !res.ok, content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
202
276
  }
203
277
  catch (err) {
204
278
  return { isError: true, content: [{ type: "text", text: `Network error: ${String(err)}` }] };
@@ -224,25 +298,24 @@ export async function handleToolCall(name, args, config, fetchFn = globalThis.fe
224
298
  }
225
299
  if (name === "get_integration_snippet") {
226
300
  const lang = String(args.language || "nodejs");
227
- const key = config.apiKey || "otpy_your_api_key";
228
301
  let snippet = "";
229
302
  if (lang === "python") {
230
- snippet = `import requests\nres = requests.post("https://api.otpy.ir/v1/otp/send", json={"phone": "09123456789"}, headers={"Authorization": "Bearer ${key}"})\nprint(res.json())`;
303
+ snippet = `import os\nimport requests\n\nres = requests.post("https://api.otpy.ir/v1/otp/send", json={"phone": "09123456789"}, headers={"Authorization": f"Bearer {os.environ['OTPY_API_KEY']}"})\nprint(res.json())`;
231
304
  }
232
305
  else if (lang === "curl") {
233
- snippet = `curl -X POST https://api.otpy.ir/v1/otp/send -H "Authorization: Bearer ${key}" -H "Content-Type: application/json" -d '{"phone": "09123456789"}'`;
306
+ snippet = `curl -X POST https://api.otpy.ir/v1/otp/send -H "Authorization: Bearer $OTPY_API_KEY" -H "Content-Type: application/json" -d '{"phone": "09123456789"}'`;
234
307
  }
235
308
  else if (lang === "go") {
236
- snippet = `package main\n\nimport (\n\t"bytes"\n\t"encoding/json"\n\t"fmt"\n\t"net/http"\n)\n\nfunc main() {\n\tpayload, _ := json.Marshal(map[string]string{"phone": "09123456789"})\n\treq, _ := http.NewRequest("POST", "https://api.otpy.ir/v1/otp/send", bytes.NewBuffer(payload))\n\treq.Header.Set("Authorization", "Bearer ${key}")\n\treq.Header.Set("Content-Type", "application/json")\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tvar result map[string]any\n\tjson.NewDecoder(resp.Body).Decode(&result)\n\tfmt.Println(result)\n}`;
309
+ snippet = `package main\n\nimport (\n\t"bytes"\n\t"encoding/json"\n\t"fmt"\n\t"net/http"\n\t"os"\n)\n\nfunc main() {\n\tpayload, _ := json.Marshal(map[string]string{"phone": "09123456789"})\n\treq, _ := http.NewRequest("POST", "https://api.otpy.ir/v1/otp/send", bytes.NewBuffer(payload))\n\treq.Header.Set("Authorization", "Bearer "+os.Getenv("OTPY_API_KEY"))\n\treq.Header.Set("Content-Type", "application/json")\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tvar result map[string]any\n\tjson.NewDecoder(resp.Body).Decode(&result)\n\tfmt.Println(result)\n}`;
237
310
  }
238
311
  else if (lang === "php") {
239
- snippet = `<?php\nuse Illuminate\\Support\\Facades\\Http;\n\n$response = Http::withToken('${key}')\n ->acceptJson()\n ->post('https://api.otpy.ir/v1/otp/send', [\n 'phone' => '09123456789',\n ]);\n\nreturn $response->json();`;
312
+ snippet = `<?php\nuse Illuminate\\Support\\Facades\\Http;\n\n$response = Http::withToken(env('OTPY_API_KEY', ''))\n ->acceptJson()\n ->post('https://api.otpy.ir/v1/otp/send', [\n 'phone' => '09123456789',\n ]);\n\nreturn $response->json();`;
240
313
  }
241
314
  else if (lang === "csharp") {
242
- snippet = `using System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Text;\n\nusing var client = new HttpClient();\nclient.DefaultRequestHeaders.Authorization =\n new AuthenticationHeaderValue("Bearer", "${key}");\n\nvar content = new StringContent(\n "{\\"phone\\":\\"09123456789\\"}",\n Encoding.UTF8,\n "application/json");\n\nvar response = await client.PostAsync("https://api.otpy.ir/v1/otp/send", content);\nvar body = await response.Content.ReadAsStringAsync();\nConsole.WriteLine(body);`;
315
+ snippet = `using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Text;\n\nusing var client = new HttpClient();\nclient.DefaultRequestHeaders.Authorization =\n new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("OTPY_API_KEY"));\n\nvar content = new StringContent(\n "{\\"phone\\":\\"09123456789\\"}",\n Encoding.UTF8,\n "application/json");\n\nvar response = await client.PostAsync("https://api.otpy.ir/v1/otp/send", content);\nvar body = await response.Content.ReadAsStringAsync();\nConsole.WriteLine(body);`;
243
316
  }
244
317
  else {
245
- snippet = `import { OtpyClient } from "@o-t-p-y/sdk";\nconst otpy = new OtpyClient({ apiKey: "${key}" });\nawait otpy.sendOtp("09123456789");`;
318
+ snippet = `import { OtpyClient } from "@o-t-p-y/sdk";\nconst otpy = new OtpyClient({ apiKey: process.env.OTPY_API_KEY! });\nawait otpy.sendOtp("09123456789");`;
246
319
  }
247
320
  return { content: [{ type: "text", text: snippet }] };
248
321
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o-t-p-y/mcp",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "OTPy MCP server — agent-driven integration path. Implemented in P5.",
6
6
  "license": "MIT",