الوثائق
تكوين MCP
تكوين اتصال MCP CRUD وطلبات معلومات الخادم.
مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية
أرسل هذه الطلبات إلى السايدكار الخاصة بك. تبقى القيم في هذا المتصفح.
كيف يعمل هذا
يستمع السايدكار إلى منفذ الاسترجاع الذي تم اختياره عند بدء التشغيل ويطبعه في منفذ الاسترجاع الخاص به ready خط؛ استخدم عنوان URL هذا و CADCAMFUN_TOKEN لقد بدأ مع. تذهب الطلبات مباشرة من هذه الصفحة إلى هذا العنوان.
يرسل السايدكار رؤوس CORS فقط إلى أصول Tauri وإلى http://localhost أو http://127.0.0.1 على أي منفذ. من المستندات المستضافة، يحظر المتصفح الاستجابة، لذا قم بتشغيل المستندات محليًا (bun run dev في packages/web) لاستخدام الملعب، أو نسخ الطلب كحليقة. للتجربة دون لمس البيانات الحقيقية، ابدأ تشغيل السايدكار باستخدام CADCAMFUN_DATA_DIR أشار إلى دليل مهمل - انظر إرشادات واجهة برمجة التطبيقات.
العمليات
8 نقاط نهاية في mcp المجموعة التي تم إنشاؤها من السايدكار مستند OpenAPI. تأخذ العمليات المحمية Authorization: Bearer $CADCAMFUN_TOKEN; يرى المصادقة. السلوك والحدود موجودة دليل النظام الفرعي.
| يحصل | /api/mcp/config | mcp.listConfig |
| بريد | /api/mcp/config | mcp.createConfig |
| يضع | /api/mcp/config | mcp.updateConfig |
| يمسح | /api/mcp/config | mcp.removeConfig |
| يحصل | /api/mcp/config/{id} | mcp.getConfig |
| يضع | /api/mcp/config/{id} | mcp.updateConfigById |
| يمسح | /api/mcp/config/{id} | mcp.removeConfigById |
| بريد | /api/mcp/server-info | mcp.serverInfo |
/api/mcp/config
mcp.listConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| مصدر | استفسار | خيط | null | خياري |
200 كائن | هدف application/json
{ success: true source: "claude" | "database" servers: Array<{ id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean userId: string | null createdAt: string updatedAt: string }> count: number | "Infinity" | "-Infinity" | "NaN" } | { success: true source: "file" config: { mcpServers: Array<{ id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean }> } exportedAt: string }
400 McpEnvBadRequestEncoded application/json
McpEnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 McpEnvInternalEncoded application/json
McpEnvInternalEncoded
رد المثال تم الالتقاط · 200
{
"success": true,
"source": "claude",
"servers": [],
"count": 0
} مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpListConfigInput
const result = await client.mcp.listConfig({}) curl
curl --request GET "${CADCAMFUN_URL}/api/mcp/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
mcp.createConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| مصدر | استفسار | خيط | null | خياري |
{ id?: string | null name?: string | null type?: string | null url?: string | null command?: string | null args?: unknown | null workingDirectory?: string | null defaultWorkingDirectory?: string | null enabled?: boolean | null serverName?: string | null testConnection?: boolean | null mcpServers?: unknown | null tool_configuration?: unknown | null authorization_token?: string | null }
200 هدف application/json
{ success: true source: "file" imported: number | "Infinity" | "-Infinity" | "NaN" message: string }
201 هدف application/json
{ success: true source: "claude" | "database" server: { id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean userId: string | null createdAt: string updatedAt: string } connectionTest?: unknown | null message: string }
400 McpEnvBadRequestEncoded application/json
McpEnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
500 McpEnvInternalEncoded application/json
McpEnvInternalEncoded
جلب المثال
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/mcp/config`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request POST "${CADCAMFUN_URL}/api/mcp/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
mcp.updateConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| مصدر | استفسار | خيط | null | خياري |
{ id?: string | null name?: string | null type?: string | null url?: string | null command?: string | null args?: unknown | null workingDirectory?: string | null defaultWorkingDirectory?: string | null enabled?: boolean | null serverName?: string | null testConnection?: boolean | null mcpServers?: unknown | null tool_configuration?: unknown | null authorization_token?: string | null }
200 هدف application/json
{ success: true source: "claude" server: { id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean userId: string | null createdAt: string updatedAt: string } message: string }
400 McpEnvBadRequestEncoded application/json
McpEnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpEnvNotFoundEncoded application/json
McpEnvNotFoundEncoded
405 McpEnvMethodNotAllowedEncoded application/json
McpEnvMethodNotAllowedEncoded
500 McpEnvInternalEncoded application/json
McpEnvInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpUpdateConfigInput
const result = await client.mcp.updateConfig({
id: "",
name: "",
type: "",
url: "",
command: "",
args: null,
workingDirectory: "",
defaultWorkingDirectory: "",
enabled: false,
serverName: "",
testConnection: false,
mcpServers: null,
tool_configuration: null,
authorization_token: ""
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/mcp/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
mcp.removeConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| مصدر | استفسار | خيط | null | خياري |
| اسم | استفسار | خيط | null | خياري |
200 هدف application/json
{ success: true source: "claude" message: string note: string }
400 McpEnvBadRequestEncoded application/json
McpEnvBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpEnvNotFoundEncoded application/json
McpEnvNotFoundEncoded
405 McpEnvMethodNotAllowedEncoded application/json
McpEnvMethodNotAllowedEncoded
500 McpEnvInternalEncoded application/json
McpEnvInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpRemoveConfigInput
const result = await client.mcp.removeConfig({}) curl
curl --request DELETE "${CADCAMFUN_URL}/api/mcp/config" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
mcp.getConfig يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
200 هدف application/json
{ id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean userId: string | null createdAt: string updatedAt: string }
400 McpBadRequestEncoded application/json
McpBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpNotFoundEncoded application/json
McpNotFoundEncoded
500 McpInternalEncoded application/json
McpInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpGetConfigInput
const result = await client.mcp.getConfig({
id: "<id>"
}) curl
curl --request GET "${CADCAMFUN_URL}/api/mcp/config/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
mcp.updateConfigById يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
{ id?: string | null name?: string | null type?: string | null url?: string | null command?: string | null args?: unknown | null workingDirectory?: string | null defaultWorkingDirectory?: string | null enabled?: boolean | null serverName?: string | null testConnection?: boolean | null mcpServers?: unknown | null tool_configuration?: unknown | null authorization_token?: string | null }
200 هدف application/json
{ id: string name: string type: string url: string | null command: string | null args: unknown workingDirectory: string | null enabled: boolean userId: string | null createdAt: string updatedAt: string }
400 McpBadRequestEncoded application/json
McpBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpNotFoundEncoded application/json
McpNotFoundEncoded
405 McpMethodNotAllowedEncoded application/json
McpMethodNotAllowedEncoded
500 McpInternalEncoded application/json
McpInternalEncoded
جلب المثال
// Not generated in the Promise SDK (multipart, binary or raw body): call it with fetch.
const response = await fetch(`${process.env.CADCAMFUN_URL}/api/mcp/config/${id}`, {
method: "PUT",
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
}) curl
curl --request PUT "${CADCAMFUN_URL}/api/mcp/config/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
mcp.removeConfigById يتطلب Authorization: Bearer <token>.
| اسم | في | يكتب | مطلوب |
|---|---|---|---|
| بطاقة تعريف | طريق | خيط | مطلوب |
204 <لا يوجد محتوى>
400 McpBadRequestEncoded application/json
McpBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpNotFoundEncoded application/json
McpNotFoundEncoded
405 McpMethodNotAllowedEncoded application/json
McpMethodNotAllowedEncoded
500 McpInternalEncoded application/json
McpInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpRemoveConfigByIdInput
const result = await client.mcp.removeConfigById({
id: "<id>"
}) curl
curl --request DELETE "${CADCAMFUN_URL}/api/mcp/config/<id>" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" جربه
/api/mcp/server-info
mcp.serverInfo يتطلب Authorization: Bearer <token>.
{ serverId?: string | null }
200 هدف application/json
{ name: string version?: string | null instructions?: string | null resources?: Array<{ name: string uriTemplate?: string | null description?: string | null arguments?: Array<{ name: string description?: string | null required?: boolean | null }> | null }> | null tools?: Array<{ name: string description?: string | null parameters?: unknown | null }> | null }
400 McpBadRequestEncoded application/json
McpBadRequestEncoded
401 UnauthorizedEncoded application/json
UnauthorizedEncoded
404 McpNotFoundEncoded application/json
McpNotFoundEncoded
405 McpMethodNotAllowedEncoded application/json
McpMethodNotAllowedEncoded
500 McpInternalEncoded application/json
McpInternalEncoded
مثال SDK
import { CadCam } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
// McpServerInfoInput
const result = await client.mcp.serverInfo({
serverId: ""
}) curl
curl --request POST "${CADCAMFUN_URL}/api/mcp/server-info" \
--header "Authorization: Bearer ${CADCAMFUN_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json جربه
المخططات
يمكن الوصول إلى المخططات المسماة من معلمات هذه المجموعة وأجسامها واستجاباتها. أ ? يمثل حقلاً اختياريًا؛ | null يضع علامة على الحقل الذي قد يكون موجودًا بقيمة فارغة.
McpBadRequestEncoded{ _tag: "McpBadRequest" error: string }
McpEnvBadRequestEncoded{ _tag: "McpEnvBadRequest" success: false error: string }
McpEnvInternalEncoded{ _tag: "McpEnvInternal" success: false error: string }
McpEnvMethodNotAllowedEncoded{ _tag: "McpEnvMethodNotAllowed" success: false error: string }
McpEnvNotFoundEncoded{ _tag: "McpEnvNotFound" success: false error: string }
McpInternalEncoded{ _tag: "McpInternal" error: string }
McpMethodNotAllowedEncoded{ _tag: "McpMethodNotAllowed" error: string }
McpNotFoundEncoded{ _tag: "McpNotFound" error: string }
استدعاء هذه المجموعة
معرفات العملية لها النموذج mcp.<name>. وعد SDK الذي تم إنشاؤه (@cadcamfun/api/sdk) يعرض معظمهم client.<namespace>.<method>(input)، أين input هو كائن مسطح واحد من معلمات المسار وحقول النص؛ يُظهر مثال SDK لكل بطاقة الملحق الدقيق ونوع الإدخال. لا يتم إنشاء التحميلات متعددة الأجزاء والاستجابات الثنائية أو استجابات JavaScript وخطافات الويب الأولية؛ تظهر تلك البطاقات fetch بدلاً من ذلك.
import { CadCam, ClientError } from "@cadcamfun/api/sdk"
const client = CadCam.make({
baseUrl: process.env.CADCAMFUN_URL!,
headers: { authorization: `Bearer ${process.env.CADCAMFUN_TOKEN}` },
})
try {
await client.projects.list()
} catch (error) {
if (error instanceof ClientError) {
// Transport | UnexpectedStatus | UnsupportedContentType | MalformedResponse | SseEventTooLarge
} else {
// a declared error body: switch on error._tag
}
} استكشاف الأخطاء وإصلاحها
| أعراض | السبب المحتمل | يصلح |
|---|---|---|
| 401 في كل طلب | رمز مميز من إطلاق سابق، أو مفقود Bearer بادئة | يرسل Authorization: Bearer <token> بالرمز المميز الذي بدأت به السايدكار. |
| 400 قبل أن يحدث أي شيء | النص أو المعلمة لا يتطابقان مع المخطط | قارن الحمولة بمخطط الطلب الموجود على البطاقة. |
| 403 أو 404 لسجل يمكنك رؤيته في مكان آخر | حساب التمثيل يختلف | أرسل الحق x-session-tokenأو استخدم ملف التعريف المحلي الذي يملك السجل. |
| 409 | حالة متعارضة، مثل اسم مكرر أو رأس فرع قديم | أعد قراءة المورد وأعد المحاولة باستخدام البيانات الحالية. |
| جربه يقول "تم حظره بواسطة CORS" | يتم تقديم المستندات من أصل غير استرجاعي | قم بتشغيل المستندات محليًا أو انسخ الطلب كـ curly. |
| رفض اتصال | تم إعادة تشغيل السايدكار في منفذ جديد | قراءة المنفذ من الجديد ready سطر. |