MCP 도구 참조

MCP 도구 인자와 응답 필드, 비교 설정, 자원 한도를 조회합니다.

리스펙스 도구에 보낼 요청을 만들고 응답을 읽을 때 이 참조를 사용하세요. 호출 애플리케이션이 도구와 외부 행동의 권한을 어떻게 관리하는지도 설명합니다.

먼저 네이티브 실행 파일을 설치하고 연결 가이드를 따라 설정합니다. lispex mcp serve는 로컬 표준 입력과 표준 출력으로 JSON 메시지를 주고받습니다. 서버의 MCP 프로토콜 버전은 2025-11-25입니다. 클라이언트는 연결을 초기화한 뒤 도구 목록을 받거나 도구를 호출합니다.

요청과 응답 읽기

읽기 오류를 알아보려면 {"code": "E100"}으로 lispex_diagnostic을 호출합니다. 연결 초기화 뒤 보내는 전체 JSON-RPC 요청은 다음과 같습니다. 클라이언트는 응답을 요청과 짝지을 id를 정합니다.

JSON
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "lispex_diagnostic",
    "arguments": {
      "code": "E100"
    }
  }
}

응답은 같은 id를 사용합니다. result.structuredContent.result에서 일부 필드를 발췌하면 다음과 같습니다.

JSON
{
  "known": true,
  "code": "E100",
  "severity": "error",
  "phase": "reader",
  "family": "illegal-token-or-structure",
  "exit_status": 1,
  "raising_condition": "The reader cannot form one admitted datum."
}

소스를 읽는 과정에서 올바른 데이터 값 하나를 구성하지 못했다는 뜻입니다. 여기서 exit_status: 1은 진단 대상 오류의 상태이며 서버 종료를 뜻하지 않습니다. 조회는 성공했고 결과 파일을 만들지 않으며 연결은 열린 채로 유지됩니다.

도구 인자

도구 인자는 JSON 객체로 전달합니다. 목록에 없는 인자 필드를 추가하면 요청을 거절합니다.

도구인자결과
lispex_referencetopic은 선택 사항이며, 정확한 name을 넣을 때는 필수설치된 언어 항목
lispex_eval필수 source와 선택 input리스펙스 인터프리터의 값과 출력과 경고와 진단
lispex_diagnostic필수 code, E 또는 W 뒤에 숫자 세 자리카탈로그 항목과 원인 또는 known: false
lispex_compare_routes필수 court, source와 선택 input비교 결과와 자원 사용량과 제품 식별자

source에는 전체 UTF-8 소스를 문자열로 넣습니다. input에는 "41"처럼 리스펙스 데이터 값 하나를 문자열로 넣습니다. 프로그램은 그 값을 input이라는 이름으로 받습니다.

lispex_reference의 주제 이름은 다음과 같습니다.

topic내용
forms언어 형식과 그 구조
procedures내장 프로시저와 인자
reader주석을 포함한 소스 표기 규칙
resources자원 프로파일
routes실행 방식

빈 인자 객체를 보내면 주제 목록을 반환합니다. 주제만 지정하면 그 주제의 항목을 나열합니다. 알 수 없는 이름에는 known: false를 반환합니다. 예를 들어 {"topic": "procedures", "name": "eval"}의 결과에는 disposition: "absent"가 나옵니다.

평가 결과 읽기

도구 응답은 structuredContent에 JSON 결과를 담고 content에 같은 결과의 텍스트를 담습니다. 연결 가이드에서 전체 평가 예제를 볼 수 있습니다.

structuredContent 필드뜻
schema이 결과 형식의 판인 lispex.mcp-eval-result/v1
statusok나 runtime-error 같은 평가 결과 상태
values리스펙스 표기로 쓴 반환 값
stdout출력 내용. 최상위 값의 출력도 포함
diagnostics, warnings확인할 오류와 경고
exit_status서버 프로세스와 별개인 평가 상태
source_sha256, input_sha256평가 요청의 소스와 입력 식별자
resource_profile한도와 자원 처리 결과
source_retainedfalse. 호출이 끝나면 서버가 요청 소스를 해제
vouch_authorityfalse. 인증과 수용 판단은 별도 바우치 흐름에서 처리

예를 들어 {"source": "(car)"}는 status: "runtime-error"와 진단 E302를 반환합니다. exit_status는 1입니다. {"code": "E302"}를 조회하면 호출 인자 개수가 잘못됐다는 설명을 받습니다.

비교 대상 고르기

court 인자는 정해진 런타임 구현 묶음 하나를 고릅니다.

court제품
tree-rust내장 리스펙스 인터프리터와 리스펙스 VM

가상 머신은 컴파일한 명령을 실행합니다.

서버는 같은 소스와 입력과 요청한 자원 조건으로 비교합니다. 이름의 참조를 정한 중간 표현인 Core IR의 식별자도 기록합니다. 컴파일한 바이트코드의 식별자도 기록에 들어갑니다.

observations의 구현별 항목은 semantic에 실행 결과를 담습니다. 자원 정보는 resources에, 제품 식별자는 products에 있습니다.

결과 필드읽는 방법
required_routes선택한 전체 실행 방식 목록
status, comparison_completed비교가 끝났는지 확인
agreement결과와 자원 관측이 비교 규칙에 따라 일치하는지 확인
mismatch_axes, resource_mismatch_axes서로 다른 비교 항목
partial_comparisonfalse. 필요한 제품이 없으면 선택한 비교를 중단
answer_selectedfalse. 불일치할 때 기록된 결과를 직접 확인

다른 court 값

기본 서버는 tree-rust를 제공합니다. 도구 스키마에는 rust-topaz와 all-four도 있습니다. 이 두 값은 서버 시작 때 토파즈 보조 제품을 지정해야 실행됩니다. 그 제품이 없으면 도구는 status: "unavailable"을 반환합니다. 예를 들어 missing_prerequisites: ["topaz-vm"]과 attempted_routes: []가 나옵니다.

자원 프로파일

프로그램을 작성하며 검토한 소스에 이 도구를 사용하세요. 프로파일 ID는 lispex-mcp-local-authoring/v1입니다.

자원한도
요청당 소스65,536바이트
요청당 입력16,384바이트
평가 결과1MiB
평가 시간5초
비교 결과4MiB

서버는 시간 초과와 취소, 잘못된 입력, 필요한 제품의 부재를 보고합니다. 비교 결과에는 빌드와 정리와 프로세스의 실패 상태도 들어갑니다. 결과를 완료된 계산으로 읽기 전에 상태부터 확인하세요. 신뢰하지 않는 사용자가 제공한 애플리케이션 규칙에는 자원 제어 평가기를 사용합니다.

데이터와 권한

소스와 선택 입력은 stdio를 통해 로컬 서버에 전달됩니다. 작업 프로세스는 요청 데이터를 메모리에 두었다가 요청이 끝나면 해제합니다. 결과에는 소스 식별자와 계산한 값, 출력, 자원 관측, 진단이 들어갑니다. 어시스턴트에 입력한 텍스트에는 해당 애플리케이션의 정책이 적용됩니다.

호출 애플리케이션은 도구 접근과 외부 행동의 권한을 관리합니다. 규칙의 반환 값은 애플리케이션이 판단에 사용할 데이터입니다. 리스펙스 바우치는 게시자를 인증하고 정확한 요청에 기록을 연결한 뒤 재실행합니다. 수신 애플리케이션은 자신의 수용 규칙을 적용하고 외부 행동을 할지 결정합니다.

연결 가이드 · 리스펙스 인터프리터와 리스펙스 VM · 진단 목록