Hosted MCP Apps Example Gallery
호스티드 MCP 앱 예제 갤러리
6개의 공식 MCP 앱 예제를 독립적으로 호스팅하며, 요청 범위가 제한된 버전입니다. 이 갤러리는 사용자가 원격 Streamable HTTP URL을 복사하여 MCP 앱 호스트에 연결하고, 소스를 클론하거나 터널을 열지 않고도 완전한 대화형 도구/리소스 흐름을 시도할 수 있도록 설계되었습니다.
이 저장소와 서비스는 독립적인 학습 인프라입니다. 공식 Model Context Protocol 프로젝트나 서비스가 아니며, SLA가 없고, 계정, 업로드, 자격 증명 또는 지속적인 사용자 데이터를 허용하지 않습니다.
호스티드 갤러리 사용해보기
검증된 프로덕션 갤러리는 openwork-mcp-app-gallery-sol.vercel.app입니다. 다음 Streamable HTTP URL 중 하나를 MCP 앱 호환 호스트에 추가하세요:
앱 | 프로덕션 MCP URL | 샘플 프롬프트 |
Get Time |
| “대화형 앱에서 현재 서버 시간을 보여줘.” |
Budget Allocator |
| “대화형 예산 할당기를 열어줘.” |
Cohort Heatmap |
| “대화형 고객 유지 코호트 히트맵을 보여줘.” |
Customer Segmentation |
| “대화형 세분화 차트에서 합성 고객을 탐색해봐.” |
Scenario Modeler |
| “대화형으로 합성 성장 시나리오를 모델링해봐.” |
Transcript |
| “로컬 브라우저 대화 기록 인터페이스를 열어줘.” |
MCP 도구는 지원하지만 MCP 앱은 지원하지 않는 호스트에서도 동일한 엔드포인트는 일반 텍스트와 구조화된 도구 결과를 반환합니다. 포함된 대화형 리소스만 생략됩니다. 각 URL은 정확히 하나의 앱을 노출하므로, 여러 예제를 원할 경우 여러 URL을 연결하세요. 복사된 엔드포인트에는 계정, 토큰 또는 사용자 정의 헤더가 필요하지 않습니다.
이 서비스는 의도적으로 SLA가 없습니다. 입력은 제한적이고 합성적입니다. Transcript 앱은 마이크 오디오를 브라우저에 유지하며 서버에 업로드하지 않습니다. 공유 또는 자동화된 환경에서 갤러리를 사용하기 전에 제한 사항 및 오류 동작 및 진단 및 안전한 관찰 가능성을 참조하세요.
갤러리 카탈로그
앱 | 원격 MCP 경로 | 도구 | 대화형 동작 | 데이터 경계 |
Get Time |
|
| 결과 전달 및 동일 서버 새로고침 | 현재 서버 타임스탬프만 |
Budget Allocator |
|
| 예산 컨트롤, 차트 및 앱 제공 도구 | 고정된 합성 카테고리 및 벤치마크 |
Cohort Heatmap |
|
| 제한된 코호트 컨트롤 및 동일 서버 새로고침 | 결정론적 합성 코호트, 최대 12 × 12 |
Customer Segmentation |
|
| 필터 및 합성 고객 시각화 | 고정된 합성 레코드, 제한된 필터 |
Scenario Modeler |
|
| 템플릿 및 제한된 동일 서버 예측 | 합성 입력 및 12개월 계산 |
Transcript |
|
| 로컬 브라우저 음성 UI 및 구조화된 탐색 | 오디오는 브라우저에 유지, 서버 업로드 없음 |
각 경로는 정확히 하나의 갤러리 도구와 하나의 변경 불가능한 ui:// 리소스를 가진 독립적인 MCP 서버 표면입니다. 의도적으로 루트 메가 MCP나 앱 간 도구 또는 리소스 액세스가 없습니다.
프로토콜 및 호스트 계약
런타임은 갤러리 소유의 SDK-v2 등록 어댑터를 통해 mcp-handler 2.1.1 및 @modelcontextprotocol/server 2.0.0을 사용합니다. 다음을 지원합니다:
현재 MCP
2026-07-28검색 및 요청 엔벨로프;상태 비저장 2025 시대 Streamable HTTP 폴백;
initialize,tools/list,tools/call,resources/read;중첩 및 레거시 플랫 UI 메타데이터가 포함된
text/html;profile=mcp-app리소스;비앱 호스트를 위한 일반 텍스트 콘텐츠 및 구조화된 콘텐츠;
앱 초기화, 초기 입력/결과 전달 및 UI 트리거 동일 서버 도구 호출;
Vercel을 통해 게이트웨이, 핸들러, 도구 및 리소스 작업으로 전파되는 요청 취소.
서비스는 상태 비저장입니다. POST는 MCP 요청을 전달합니다. GET은 핸들러로 라우팅되어 의도적인 세션 없음 405를 반환합니다. DELETE는 405를 반환합니다. 제한된 OPTIONS는 허용 목록에 있는 브라우저 출처에 대해서만 사용 가능합니다. 이는 이중 시대 핸들러의 상태 비저장 전송 계약과 일치하며 서버 측 세션이 존재함을 암시하지 않습니다.
런타임 아키텍처
Vercel에서 인식하는 하나의 Hono 진입점인 app.ts가 랜딩 페이지, 진단 및 6개의 매개변수화된 MCP 경로를 하나의 상태 비저장 Function을 통해 제공합니다. Vercel은 public/의 생성된 공개 자산을 CDN을 통해 제공합니다.
빌드는 의도적으로 체크인된 소스와 고정된 lockfile에 대해 폐쇄되어 있습니다:
scripts/generate-upstream-manifest.ts는 고정된 소스와 갤러리 소유의 적응을 기록합니다.scripts/bundle-mcp-app-resources.ts는 결정론적 단일 파일 HTML 리소스를 빌드하고 512 KiB를 초과하면 실패합니다.scripts/generate-gallery.ts는 랜딩 페이지 매니페스트와 콘텐츠 해시된 정적 자산을 생성합니다.scripts/generate-sbom.ts는 커밋된 CycloneDX 인벤토리를 생성합니다.src/resources.ts는 준비 상태가 성공하기 전에 정확한 소스 출처, 리소스 ID, 바이트 크기 및 SHA-256을 검증합니다.
런타임 소스 가져오기, 패키지 설치, 하위 프로세스, 임의 URL 입력, 업로드, 의도된 서버 측 이그레스 또는 변경 가능한 파일 시스템 경로가 없습니다.
제한 사항 및 오류 동작
요청 본문: MCP 요청당 256 KiB.
도구 결과 및 앱 리소스: 각각 512 KiB.
애플리케이션 마감 시간: 15초.
Vercel Function 상한: 30초, 취소 활성화됨.
동시성: 프로세스당 48개, 앱당 더 작은 선언된 상한.
동시성 게이트는 인스턴스 로컬 보호만 제공합니다. Fluid 인스턴스 전반의 전역적으로 권위 있는 분산 속도 제한기로 표현되지 않습니다. 한도 초과 요청은 429와 Retry-After를 받습니다. 크기 초과 요청은 413을 받습니다. 크기 초과 다운스트림 결과는 502를 받습니다. 마감 시간 초과는 504를 받습니다. 클라이언트 취소는 내부적으로 구분됩니다. 공개 응답에는 제한된 오류가 포함되며 스택 추적이나 파일 시스템 경로는 절대 포함되지 않습니다.
런타임 킬 스위치를 위해 DISABLED_APP_SLUGS를 6개 슬러그의 쉼표로 구분된 하위 집합으로 설정하세요. 비활성화된 앱은 생성된 라이브 카탈로그에서 사라지고 404를 반환합니다. /readyz, /version 및 /apps.json은 활성화된 집합을 보고합니다. apps.json은 짧은 public, max-age=60, must-revalidate 정책을 사용하여 비활성화된 앱 변경이 긴 변경 불가능 캐시 뒤에 숨겨질 수 없도록 합니다.
진단 및 안전한 관찰 가능성
/healthz는 Function이 응답한다는 것만 증명합니다./readyz는 레지스트리, 활성화된 슬러그, 번들된 리소스 수, 크기 및 다이제스트를 검증합니다./version은 구성된 경우 빌드 SHA, 고정된 업스트림 커밋, 모델 네임스페이스, 어댑터 버전, Node 버전, 활성화된 슬러그 및 안전한 빌드 시간만 반환합니다.
MCP 요청 로그는 구조화되어 있으며 sol 네임스페이스, 앱 슬러그, 메서드 카테고리, 상태, 기간, 바이트 수 및 안전한 빌드 SHA로 제한됩니다. 인수, 결과, 프롬프트, 리소스 콘텐츠, 인증 헤더, 쿠키, IP 주소, 사용자 식별자, 자격 증명 및 비공개 배포 URL은 금지됩니다.
로컬 개발
Node.js 24.x 및 pnpm 10.28.0을 사용하세요:
pnpm install --frozen-lockfile
pnpm generate
pnpm devhttp://127.0.0.1:4173을 여세요. 로컬 또는 터널링된 표준 출처의 경우 명시적으로 검증된 BASE_URL을 설정하세요. 루프백 개발 외부에서 공개 기본 URL은 HTTPS를 사용해야 하며 자격 증명, 쿼리 문자열 또는 프래그먼트를 포함할 수 없습니다. 임의의 Host 및 전달된 호스트 헤더는 복사 가능한 엔드포인트에 대해 절대 신뢰되지 않습니다.
완전한 저장소 소유 검증 경로는 다음과 같습니다:
pnpm exec playwright install chromium
pnpm run release:check:ci해당 경로는 포맷팅, 린트, 엄격한 TypeScript, 게이트웨이 및 이중 시대 계약 테스트, 실제 브라우저 MCP 앱 브리지 테스트, 고지/출처 확인, Vercel 아키텍처 확인, 프로덕션 종속성 감사, 소스 경계 및 비밀 스캔, SBOM 생성 및 프로덕션 형태의 애플리케이션 빌드를 실행합니다. pnpm run release:check는 정확한 Vercel 프로젝트가 연결된 경우 vercel build --prod --yes를 추가합니다.
검증 설계
계약 매트릭스는 공식 SDK-v2 클라이언트를 고정된 현재 및 레거시 모드 모두에서 6개 엔드포인트 모두에 대해 사용합니다. 도구를 나열하고, 각 대표 도구를 호출하고, 모든 앱 리소스를 읽고, 일반 폴백을 확인하고, 외부 리소스를 거부하고, 잘못된 입력을 확인하고, 연결 주기를 반복하고, 격리된 카탈로그에서 20개의 대표 클라이언트를 실행합니다.
게이트웨이 테스트는 알 수 없음, 비활성화됨, 트래버설 형태 및 스푸핑된 경로를 다룹니다. CORS; 메서드 정책; 실제 및 광고된 본문 상한; 잘못된 형식의 JSON 및 JSON-RPC; 핸들러 포함; 결과 상한; 마감 시간; 취소; 동시성; 누락된 리소스 부팅 실패; 및 콜드/웜 준비 상태를 다룹니다.
Playwright는 번들된 각 UI를 별도의 공식 AppBridge 호스트 내에서 실행하고, 초기 도구 입력/결과를 전달하고, UI-도구 왕복을 실행하고, 카탈로그 렌더링, 복사 동작, 접근 가능한 이름, 보이는 키보드 포커스, 이미지 대안 및 320px 레이아웃을 확인합니다. 해당 하네스는 갤러리의 브라우저/브리지 계약을 증명합니다. 관련 없는 프로덕션 호스트의 증명으로 잘못 표시되지 않습니다.
릴리스 증거 및 배포별 증명 상태는 BENCHMARK_REPORT.md, benchmark/result.json, TIMELINE.md 및 benchmark/timeline.json에 기록됩니다. 누락된 외부 호스트 증명은 통과로 대체되지 않고 불완전 또는 건너뜀으로 유지됩니다.
소스 및 라이선스 경계
감사 스냅샷은 modelcontextprotocol/ext-apps@10195ad91851502134930e9b80ec2c04e277a720으로 고정되었습니다. 다음 업스트림 예제 디렉토리만 포함됩니다:
examples/basic-server-reactexamples/budget-allocator-serverexamples/cohort-heatmap-serverexamples/customer-segmentation-serverexamples/scenario-modeler-serverexamples/transcript-server
복사된 모든 파일은 upstream/ext-apps/ 아래에 바이트 단위로 유지되며, 원래 경로, SHA-256, 바이트 수, 유효 라이선스, 고지 및 수정 명세가 upstream/manifest.json에 있습니다. 선택된 패키지는 고정된 개정판에서 MIT를 선언합니다.
세 가지 크기 제한 UI 재표현은 ui-adaptations/ 아래에 있습니다. 제한된 차트 호환성 레이어는 src/ui/chart-shim.ts에 있습니다. 이는 갤러리 소유의 Apache-2.0 코드이며, 매니페스트는 정확한 파일, 다이제스트, 크기, 근거 및 이유를 기록합니다. 전체 업스트림 MIT 허가 및 라이선스 전환 고지는 THIRD_PARTY_NOTICES.md를 참조하세요. 갤러리 소유 코드는 LICENSE에 따라 Apache-2.0입니다.
브랜치 및 릴리스 정책
forward는 유일한 통합 및 프로덕션 브랜치입니다. 작업은 sol/gallery-v1과 같은 집중된 풀 리퀘스트를 통해 이루어집니다. main과 dev는 릴리스 브랜치가 아닙니다. 보호된 브랜치는 풀 리퀘스트, 선형 히스토리, 해결된 대화를 요구하며, 강제 푸시 및 삭제를 허용하지 않습니다. 프로덕션 승격은 병합과 별개의 검증된 작업입니다.
로컬 워크플로에 대해서는 CONTRIBUTING.md를 참조하고, 위협 모델 및 비공개 보고 방법에 대해서는 SECURITY.md를 참조하십시오.
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 Connectors
Build, deploy, and operate hosted web apps on VibeKit (vibekit.bot) from any MCP client.
Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).
Public read-only Précis Finance MCP demo with synthetic data; no account or credentials required.
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/different-ai/openwork-mcp-app-gallery-sol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server