Documentazione
Configurazione dell'MCP
CRUD di configurazione della connessione MCP e richieste di informazioni sul server.
Tradotto automaticamente dall'inglese. Vedi l'originale in inglese
Invia queste richieste al tuo sidecar in corsa. I valori rimangono in questo browser.
Come funziona
Il sidecar resta in ascolto su una porta di loopback scelta all'avvio e la stampa nel suo file ready linea; usa quell'URL e il file CADCAMFUN_TOKEN è stato iniziato con. Le richieste vanno direttamente da questa pagina a quell'indirizzo.
Il sidecar invia intestazioni CORS solo alle origini Tauri e a http://localhost o http://127.0.0.1 su qualsiasi porto. Dai documenti ospitati il browser blocca la risposta, quindi esegui i documenti localmente (bun run dev in packages/web) per utilizzare il parco giochi, oppure copiare la richiesta come ricciolo. Per sperimentare senza toccare i dati reali, avvia il sidecar con CADCAMFUN_DATA_DIR indicato in una directory usa e getta - vedi la procedura dettagliata dell'API.
Operazioni
8 endpoint nel mcp gruppo, generato da quello del sidecar Documento OpenAPI. Le operazioni protette richiedono Authorization: Bearer $CADCAMFUN_TOKEN; vedere autenticazione. Comportamenti e limiti sono entrati la guida del sottosistema.
| ottenere | /api/mcp/config | mcp.listConfig |
| inviare | /api/mcp/config | mcp.createConfig |
| mettere | /api/mcp/config | mcp.updateConfig |
| eliminare | /api/mcp/config | mcp.removeConfig |
| ottenere | /api/mcp/config/{id} | mcp.getConfig |
| mettere | /api/mcp/config/{id} | mcp.updateConfigById |
| eliminare | /api/mcp/config/{id} | mcp.removeConfigById |
| inviare | /api/mcp/server-info | mcp.serverInfo |
/api/mcp/config
mcp.listConfig Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| fonte | domanda | corda | null | opzionale |
200 oggetto | oggetto 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
Risposta di esempio catturato · 200
{
"success": true,
"source": "claude",
"servers": [],
"count": 0
} Esempio dell'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}" Provalo
mcp.createConfig Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| fonte | domanda | corda | null | opzionale |
{ 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 oggetto application/json
{ success: true source: "file" imported: number | "Infinity" | "-Infinity" | "NaN" message: string }
201 oggetto 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
prendere esempio
// 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 Provalo
mcp.updateConfig Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| fonte | domanda | corda | null | opzionale |
{ 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 oggetto 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
Esempio dell'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 Provalo
mcp.removeConfig Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| fonte | domanda | corda | null | opzionale |
| nome | domanda | corda | null | opzionale |
200 oggetto 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
Esempio dell'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}" Provalo
mcp.getConfig Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| id | sentiero | corda | necessario |
200 oggetto 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
Esempio dell'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}" Provalo
mcp.updateConfigById Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| id | sentiero | corda | necessario |
{ 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 oggetto 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
prendere esempio
// 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 Provalo
mcp.removeConfigById Richiede Authorization: Bearer <token>.
| Nome | In | Tipo | Necessario |
|---|---|---|---|
| id | sentiero | corda | necessario |
204 <Nessun contenuto>
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
Esempio dell'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}" Provalo
/api/mcp/server-info
mcp.serverInfo Richiede Authorization: Bearer <token>.
{ serverId?: string | null }
200 oggetto 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
Esempio dell'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 Provalo
Schemi
Schemi denominati raggiungibili dai parametri, dai corpi e dalle risposte di questo gruppo. UN ? contrassegna un campo facoltativo; | null contrassegna un campo che può essere presente con un valore nullo.
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 }
Chiamando questo gruppo
Gli ID operazione hanno il formato mcp.<name>. L'SDK Promise generato (@cadcamfun/api/sdk) ne espone la maggior parte come client.<namespace>.<method>(input), dove input è un oggetto piatto di parametri di percorso e campi del corpo; l'esempio dell'SDK di ciascuna scheda mostra l'esatto accessor e il tipo di input. Non vengono generati caricamenti in più parti, risposte binarie o JavaScript e webhook grezzi; quelle carte mostrano fetch invece.
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
}
} Risoluzione dei problemi
| Sintomo | Probabile causa | Aggiustare |
|---|---|---|
| 401 a ogni chiamata | Token di un lancio precedente o mancante Bearer prefisso | Inviare Authorization: Bearer <token> con il gettone con cui è stato avviato il sidecar. |
| 400 prima che accada qualcosa | Il corpo o il parametro non corrisponde allo schema | Confronta il payload con lo schema di richiesta sulla carta. |
| 403 o 404 su un record visibile altrove | Il resoconto della recitazione è diverso | Invia il diritto x-session-tokenoppure utilizzare il profilo locale proprietario del record. |
| 409 | Stato in conflitto, ad esempio un nome duplicato o una testa di ramo obsoleta | Rileggere la risorsa e riprovare con i dati correnti. |
| Prova, dice "bloccato da CORS" | I documenti vengono serviti da un'origine non di loopback | Esegui i documenti localmente o copia la richiesta come curl. |
| Connessione rifiutata | Il sidecar è ripartito su una nuova porta | Leggi il porto dal nuovo ready riga. |