mcp-legacy-lane
삭제하기 전에 기존 경로를 계측하세요
MCP는 LLM 앱이 JSON-RPC를 통해 도구를 호출하기 위한 개방형 프로토콜입니다.
Kent의 과제: 아직 연결되어 있는 기존 경로가 있고, 아직 사용하는 사람이 있는지 집계하지 않았습니다. 삭제하기 전에 측정하세요.
이 저장소는 하나의 이중 시대 MCP 서버와 재시작 후에도 유지되는 SQLite 원장을 실행합니다. 기존 작업이 남아 있는 동안에는 폴백을 유지합니다.
버전 관리 페이지는 두 레인을 명명합니다. 레거시는 2025-11-25 및 이전입니다: 세션은 initialize로 시작합니다. 모던은 2026-07-28 및 이후입니다: 각 요청은 _meta에 버전과 신원을 담습니다.
완료된 작업 집계
재연결하는 클라이언트는 요청 수를 바꿉니다. 레거시 도구 호출 5회는 클라이언트가 매번 새 연결을 열면 15개의 요청이 되고, 연결 하나를 유지하면 7개가 됩니다. 레거시 핸드셰이크는 연결당 initialize와 notifications/initialized를 한 번씩 소비하므로, 재연결하는 클라이언트는 레거시 트래픽이 많은 것처럼 보입니다. 각 행은 레인당 동일한 도구 호출 5회입니다:
레인당 도구 호출 5회 | 레거시 요청 | 모던 요청 | 레거시 비중 |
클라이언트가 호출마다 재연결 | 15 | 10 | 60.0% |
클라이언트가 연결 하나를 유지 | 7 | 6 | 53.8% |
완료된 작업 | 5 | 5 | 50.0% |
작업 행에서 5와 5를 셉니다. 요청 행은 클라이언트가 재연결을 선택했기 때문에 6포인트 차이가 납니다. recommend()는 작업 행을 읽습니다. 전송 계층을 재작성하거나 연결 방식을 바꾸는 클라이언트가 생긴 뒤에도 여전히 일치하는 단위를 집계하세요.
Related MCP server: mcpstat
실행하기
Node 24 이상. 원장은 node:sqlite로 저장합니다.
먼저 수집기를 시작하고, 그다음 서버를 시작한 다음, 트래픽을 생성합니다:
pnpm install
pnpm collector # http://127.0.0.1:3000, OTLP (the metric export format) and agent tools
pnpm server # http://127.0.0.1:8787, dual-era MCP server
pnpm traffic # legacy and modern tool calls, plus DCR and CIMD hitsDCR은 동적 클라이언트 등록입니다: 클라이언트가 연결할 때마다 /register에 메타데이터를 POST합니다. 2026-07-28에서 폐기 예정입니다. CIMD는 클라이언트 ID 메타데이터 문서입니다: 클라이언트 ID는 정적 메타데이터를 가리키는 HTTPS URL이며, DCR의 대체재입니다.
그런 다음 두 저장소를 읽습니다:
pnpm report # verdict from .data/migration-evidence.db
pnpm proof # lane series from the collectorpnpm proof 전에 pnpm traffic 후 6초를 기다려 스크레이프가 도착하게 하세요.
첫 실행은 다음을 출력합니다:
Migration readiness: MCP protocol lanes
=======================================
window : 7 days
active days : 1/7 required
legacy operations : 5
modern operations : 3
total operations : 8/100 required
legacy % : 62.50%
raw requests : 15 legacy / 6 modern
legacy methods : initialize x5, notifications/initialized x5, tools/call x5
legacy clients : legacy-dashboard@0.9.4
modern clients : modern-agent@2.1.0
auth DCR : 2 attempts (1 success, 1 failure)
auth CIMD : 3 attempts (2 success, 1 failure)
recommendation : keep_both
A legacy client completed an operation. Keep the fallback and check next week.
Ask these clients to upgrade: legacy-dashboard@0.9.4.pnpm traffic는 레거시 클라이언트 5개와 모던 클라이언트 3개를 보내는데, 이는 스펙 릴리스 몇 주 후 Kent가 설명하는 혼합 비율입니다. 각 클라이언트는 자신의 호출 한 번을 위해 재연결하므로 요청 행은 15 대 6으로 읽힙니다. 보고서는 legacy-dashboard@0.9.4를 명명하므로 누구에게 이메일을 보낼지 알 수 있습니다.
정책
기본값: 7일 창, 활성 트래픽 7일, 완료된 작업 100건.
증거 | 판정 |
작업 없음 |
|
레거시 작업 1건 이상 |
|
레거시 작업 0건, 표본이 가드 미만 |
|
레거시 작업 0건, 두 가드 모두 통과 |
|
recommend()는 모던 작업 200건이 있어도 레거시 작업 1건이면 keep_both를 반환합니다. 그 호출은 여전히 어떤 클라이언트의 것입니다. 모던 볼륨은 누군가 여전히 기존 경로를 필요로 하는지 알려주지 않습니다.
폐기 창
폐기 기능 레지스트리는 DCR, roots, sampling, logging을 2026-07-28에서 폐기 예정으로 나열합니다. 가장 이른 제거 시점은 2027-07-28 이후 첫 개정판입니다. 깨끗한 로컬 보고서는 그 날짜를 움직이지 않습니다. 스펙을 따르는 클라이언트는 약속된 창을 여전히 보장받습니다.
에이전트에게 물어보기
수집기와 서버를 실행 중인 상태로 두세요. .mcp.json은 autotel을 http://127.0.0.1:3000/mcp로, migration을 http://127.0.0.1:8787/mcp로 가리킵니다. migrationStatus는 지속적인 창을 읽습니다.
autotel에서
mcp.protocol.lane.operations를 나열하고lane=legacy와lane=modern계열을 비교하세요. 마이그레이션 서버에서migrationStatus를 호출하세요. 2025-11-25 폴백을 제거할 수 있나요? 작업 수, 활성 일수, 정책 가드레일을 인용하세요.
그 프롬프트를 주간 크론으로 실행하면 Kent의 답을 얻습니다.
신호
신호 | 저장소 | 목적 |
| OTLP | 요청 볼륨, |
| OTLP | 비교 가능한 작업, |
| OTLP | DCR 및 CIMD 시도, |
| OTLP | 기존 레인의 침묵 일수, 실행된 적이 없으면 |
| SQLite | 보고서 창, 클라이언트 이름, 재시작 간 유지 |
list_metrics는 속성 집합별로 계열 하나를 반환하므로 에이전트는 lane으로 그룹화합니다. 해당 속성이 수집을 통과하려면 autotel-mcp 0.5.1 이상이 필요합니다.
Kent는 사용자당 평균 125건의 DCR 등록을 기록하는데, 재연결할 때마다 또 다른 레코드가 쓰이기 때문입니다. CIMD 클라이언트는 아무것도 쓰지 않습니다. 두 모드를 모두 집계하면 DCR이 언제 조용해졌는지 볼 수 있습니다.
따라 할 결정 사항
볼륨을 집계한 다음 침묵을 측정하세요. 기존 트래픽이 얼마나 도착했는지 카운터를 읽으세요. 제거를 결정하려면 마지막 도착 시점이 필요합니다. mcp.protocol.legacy.days_since_last_operation은 수집기가 스크레이프할 때 원장을 읽으므로 요청 경로에서 다시 계산하지 않습니다. 게이지가 30을 넘으면 알림을 보내세요.
메트릭에는 메서드 이름을, 원장에는 클라이언트 이름을 넣으세요. mcp_method는 라벨이므로 새 값마다 새 계열이 생기고, 인증되지 않은 호출자가 값을 선택합니다. factory.ts의 STANDARD_METHODS는 허용 목록입니다: 인식되지 않는 것은 unknown으로 기록됩니다. 클라이언트 이름에는 경계가 없으므로 SQLite로 갑니다. 이름 하나가 더 추가되면 행 하나가 더 생깁니다.
두 가드를 모두 유지하세요. 최소 표본은 조용한 오후에 제거를 승인하는 것을 막습니다. 최소 활성 일수는 주간 배치 작업을 놓친 바쁜 화요일 하루만으로 승인하는 것을 막습니다.
세션 없이 두 시대를 모두 서비스하세요. createMcpHandler는 legacy: 'stateless'로 실행됩니다. 하나의 팩토리가 두 시대를 모두 서비스하고 ctx.era가 레인을 명명합니다. 어떤 인스턴스든 모든 요청에 응답할 수 있으므로 카운터를 작성합니다. 세션 테이블이나 고정 라우팅이 필요 없습니다. 상태 저장 폴백이 있었다면 세션을 계측해야 했을 것입니다. 그러면 보고서가 로드 밸런서에 의존하게 됩니다.
시대별 클라이언트 이름
모던 요청은 호출자를 명명합니다. 레거시 요청은 initialize 중에 한 번만 호출자를 명명합니다.
레거시 ( | 모던 ( | |
메서드 이름 | JSON-RPC 본문 |
|
|
| 모든 요청의 |
모던 봉투는 모든 요청의 params._meta에서 clientInfo를 반복하므로 어떤 인스턴스든 서비스할 수 있습니다. 레거시 레인은 이름을 핸드셰이크에 넣습니다. 무상태 서버는 뒤따르는 도구 호출을 위해 이름을 보관할 곳이 없습니다. factory.ts는 둘 다 읽습니다. 보고서는 legacy-dashboard@0.9.4를 명명할 수 있는데, 그 이름은 집계되는 도구 호출이 아니라 initialize에서 도착했기 때문입니다.
요청이 스스로를 설명하므로 MCP-Method로 게이트웨이를 라우팅할 수 있습니다. 그 이유로 세션 없이도 트래픽을 귀속시킵니다.
activeDays는 UTC 날짜로 버킷을 나누므로 사용자가 미국 저녁 시간대에 작업하는 클라이언트는 두 버킷에 걸칠 수 있습니다. 인증 라우트는 DCR 및 CIMD 시도를 기록합니다. 토큰을 발행하지 않으며 CIMD 문서를 가져오지 않습니다.
구성
변수 | 효과 |
| 원장 위치 |
| 보고서 창 |
| 원장 보존 기간 |
| 표본 크기 가드 |
| 활성 일수 가드 |
GET /metrics/lanes?windowDays=30은 최대 90일까지 동일한 창을 받습니다.
원장이 재시작 후에도 유지되는 것을 확인하려면: 트래픽을 실행하고, 서버를 중지하고, 다시 시작한 다음, pnpm report를 실행하세요. 카운트는 유지됩니다.
pnpm collector는 텔레메트리를 autotel.db에 30일간 보관합니다. 서버는 증거를 .data/migration-evidence.db에 90일간 보관합니다. Git은 둘 다 무시합니다.
이중 시대 서버
서버는 createMcpHandler가 legacy: 'stateless'로 실행되고 ctx.era가 집계하는 레인을 명명하기 때문에 이중 시대입니다. 2026-07-28 변경 집합의 나머지는 변경 로그를 참조하세요.
autotel-mcp-instrumentation은 양쪽에 스팬과 지속 시간 히스토그램을 추가합니다. 제거 질문은 카운터와 원장으로 답합니다.
코드 맵
파일 | 책임 |
| 이중 시대 도구; 요청별 시대, 메서드, 클라이언트를 읽음 |
| 본문을 한 번 파싱하여 팩토리와 공유 |
| OTel 카운터 및 창 기반 스냅샷 |
| 인덱싱된 SQLite 원장, 테스트용 메모리 저장소 포함 |
| 가드 및 보고서 문구 |
| DCR 및 CIMD 시도 증거 |
| 레인 계열을 OTLP에서 다시 읽음 |
| 명명된 클라이언트 2개, 레인당 1개 |
검증
pnpm typecheck
pnpm test13개의 테스트가 비율 편향, 창 필터링, 재시작 지속성, 인증 결과, 클라이언트 귀속, 레거시 메서드 수, 두 제거 가드를 모두 다룹니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides comprehensive monitoring and observability for MCP server ecosystems with real-time health checks, performance metrics, distributed tracing, anomaly detection, and automated performance reports using OpenTelemetry and Prometheus.1MIT
- AlicenseNot gradedqualityCmaintenanceA Python utility for adding usage tracking, analytics, and audit trails to MCP servers using SQLite-backed persistence. It enables developers to monitor tool, prompt, and resource activity and expose these statistics directly to LLM clients.4MIT
- AlicenseAqualityAmaintenanceTransparent MCP proxy with OpenTelemetry tracing. Wrap any MCP server, persist traces to SQLite · Postgres · MySQL. No code changes needed.23311Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP-native health monitoring that probes MCP servers using the list_tools protocol handshake, detects version drift, stores history in SQLite, and generates an HTML dashboard.43MIT
Related MCP Connectors
Monitor MCP servers, API contracts and AI outputs for schema drift. Alerts on breaking changes.
MCP uptime, schema, auth, and SLA receipt monitoring.
Remote MCP for A2A failure replay MCP, structured receipts, audit logs, and reviewer-ready evidence.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagreehal/mcp-legacy-lane'
If you have feedback or need assistance with the MCP directory API, please join our Discord server