360 브라우저 도구에 MCP 서버를 연결해 보니 문제가 발생한 점들
요약
개발자가 운영하는 360가지의 작은 온라인 도구 모음(ToolForte)을 Claude와 Cursor 같은 AI 에이전트가 호출할 수 있도록 MCP 서버에 연결한 경험과 개선 과정을 공유합니다. 핵심은 단순히 기능을 노출하는 것을 넘어, 에이전트가 정확하게 인식하고 사용할 수 있도록 메타데이터 구조화 및 버전 관리 시스템을 강화하는 것입니다.
핵심 포인트
- 도구 목록 전체를 노출하면 컨텍스트 창만 차지하여 비효율적입니다. 점진적 공개(progressive disclosure) 방식을 사용하세요.
- 에이전트의 인식은 기능 자체가 아닌, 제목/설명/스키마 같은 메타데이터에 크게 의존합니다. 이를 반드시 구조화해야 합니다.
- 버전 관리는 매니페스트와 실제 서버 버전 간의 불일치를 막기 위해 자동화된 검증 시스템을 구축하는 것이 중요합니다.
저는 ToolForte라는 사이트를 운영하고 있습니다. 이곳은 PDF 병합, IBAN 유효성 검사, cron 라인 구문 분석, 두 텍스트 비교 등 360가지의 작은 도구들을 모아 놓은 곳입니다. 대부분 브라우저에서 실행되기 때문에 파일이 기기를 벗어나는 일은 없습니다. 저는 계정 생성 없이 간단한 작업을 하고 싶은 사람들을 위해 이 사이트를 만들었습니다.
그러다가 실제 업무에 Claude와 Cursor를 사용하기 시작하면서, 제 자신의 사이트에서 얻은 결과를 채팅창에 복사해서 붙여넣는 저 자신을 발견했습니다. 이건 어리석은 행동이었습니다. 그 도구들은 결정론적(deterministic)입니다. 에이전트는 이 도구들을 호출할 수 있어야 합니다.
그래서 저는 이 사이트에 MCP 서버를 연결해 주었습니다. 그리고 제가 배운 것들, 심지어 잘못되었던 부분들까지도 공유합니다.
첫 번째 버전은 너무 커서 쓸모가 없었다
당연한 생각은 모든 것을 노출하는 것이었습니다. 저는 그렇게 했습니다. 서버에는 111개의 도구가 나열되었고, 나중에는 180개로 늘어났습니다. 기술적으로는 작동했습니다. 하지만 실제로는 목록 자체가 에이전트가 아무것도 하기 전에 컨텍스트 창(context window)의 큰 부분을 차지해 버립니다. 게다가 그 도구들 중 열두 개가 비슷하게 들려서, 에이전트는 잘못된 도구를 더 자주 선택합니다.
수정 방법은 점진적 공개(progressive disclosure)였습니다. 서버는 이제 기본적으로 14개의 도구만 보여줍니다. 이 정도면 대부분의 작업을 처리할 수 있습니다. 검색 도구(search tool)를 사용하면 이름이나 필요에 따라 나머지 166개 도구를 찾을 수 있습니다. 레지스트리나 파워 유저라면 엔드포인트에서 ?tools=all을 사용하여 전체 목록을 요청할 수 있습니다. 같은 서버지만, 두 가지 다른 보기 방식을 제공하는 것입니다.
레지스트리는 도구의 기능이 아닌 메타데이터로 점수를 매긴다
저는 Smithery에 이 서버를 등록했고, 품질 점수 100점 만점에 43점을 받았습니다. 도구들은 제대로 작동했습니다. 하지만 점수는 목록에 적힌 내용에 따라 결정되었습니다. 제목도 없고, 매개변수에 대한 설명도 빈약했으며, 출력 스키마(output schema)가 없었고, 어떤 도구가 읽기 전용인지 알려주는 주석(annotation)도 없었습니다.
그래서 저는 모든 것을 수정했습니다. 모든 도구에 제목을 부여하고, 각 매개변수에 설명을 추가했으며, 구조화된 콘텐츠를 포함하는 출력 스키마와 주석을 달았습니다. 그 결과 점수는 96점으로 올라갔습니다. 도구 자체에는 아무런 변화가 없었습니다. MCP 서버를 게시할 때는 이 작업을 가장 먼저 하세요. 에이전트가 당신을 호출할지 결정할 때 읽는 것이 바로 이것입니다.
버전 번호는 서로 연결하는 것이 없으면 표류한다
내 레지스트리 매니페스트에는 1.10.0이라고 되어 있었는데, 서버는 모든 클라이언트에게 1.8.0이라고 알려주었습니다. 이 숫자는 핸들러에서 수동으로 입력되었고, 게시되는 매니페스트와 비교하는 것은 아무것도 없었습니다. 이런 식으로 두 번의 릴리스가 나갔습니다.
이제 핸들러는 매니페스트 파일에서 버전을 읽어옵니다. 게시 스크립트는 라이브 서버에 버전이 무엇인지 물어보고, 두 버전이 다르면 게시하는 것을 거부합니다. 지루하지만, 레지스트리 검사(registry scan)가 플래그를 지정하고 당신은 알아차리지 못하는 종류의 문제입니다.
현재 포함된 기능들
- 150개의 결정론적 유틸리티: IBAN 및 VAT 검증, cron 파싱, 정규표현식 테스트, 날짜 계산(date maths), 단위 변환, 해싱, JSON 및 텍스트 도구.
- 14개의 렌더링 도구: HTML 또는 URL을 입력하면 호스팅된 PDF나 스크린샷이 출력되며, 이는 24시간 동안 유효한 서명 링크로 제공됩니다.
- 워크플로우(Workflows): 여러 도구를 하나의 작업으로 연결하고 저장하여 ID를 통해 에이전트가 실행하도록 할 수 있습니다.
- 세션 간에 유지되는 메모리 기능.
- 결정론적이지 않은 작업을 위한 6개의 AI 도구.
키 없이 무료로 사용해 보세요: 하루 3회 렌더링이 가능합니다. Pro 버전은 월 19유로입니다. 이 비용에는 월별 크레딧 잔액과 API, MCP 서버 및 모든 AI 도구가 동일한 풀에서 가져다 쓰는 것이 포함됩니다.
추가하는 것은 약 30초가 걸립니다
원격 서버, 스트리밍 가능한 HTTP:
Claude Desktop, Cursor, ChatGPT 등 각 클라이언트는 이를 위한 설정 화면을 가지고 있습니다. 클라이언트별 정확한 단계는 toolforte.com/mcp를 참고하세요. stdio를 선호한다면, npx toolforte-mcp가 동일한 엔드포인트를 감싸줍니다. 서버는 공식 레지스트리에서 io.github.Toinedotcom/toolforte로 제공됩니다.
동일한 150개의 도구들은 일반 REST API로도 사용 가능하며, toolforte.com/developers에 문서화되어 있습니다. 모든 것은 toolforte.com/everything에서 검색할 수 있습니다.
여러분에게 알고 싶은 것
어떤 도구가 빠져 있나요? 저는 결정론적인 도구들을 빠르게 추가합니다. 만약 당신의 에이전트가 서버를 호출했는데 뭔가 잘못된 것이 돌아온다면, 어떤 도구인지 그리고 입력값이 무엇이었는지 알려주세요. 제가 당일 처리해 보겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기