Skip to main content
Glama

All-Search MCP Server

by HyunjunJeon
order4.txt9.26 kB
> /compact ⎿ Compacted. ctrl+r to see full summary --- > 그렇다면 도커 컴포즈로 전체를 실행하고 문제 생기는지 관찰해줘. --- ⏺ Docker Compose로 전체 시스템을 실행하고 문제를 확인하겠습니다. ⏺ Bash(./scripts/docker_run.sh) ⎿ Error: === TTimes Guide Coding Docker 실행 === 실행 모드를 선택하세요: 1. 전체 시스템 시작 (build + up) 2. 백그라운드로 시작 (build + up -d) 3. 로그 확인 (logs -f) 4. 시스템 중지 (down) 5. 시스템 완전 삭제 (down -v) 6. 개별 서비스 재시작 7. 헬스체크 상태 확인 … +2 lines (ctrl+r to see all) ⏺ 대화형 스크립트는 자동화할 수 없으므로 직접 Docker Compose 명령어를 실행하겠습니다. ⏺ Bash(docker compose build) ⎿ #1 [internal] load local bake definitions #1 reading from stdin 2.27kB done #1 DONE 0.0s … +409 lines (ctrl+r to expand) ⏺ 빌드가 진행되고 있습니다. 이제 백그라운드로 시스템을 시작하겠습니다. ⏺ Bash(docker compose up -d) ⎿ Error: time="2025-06-30T23:24:44+09:00" level=warning msg="/Users/jhj/Desktop/personal/ttimes_guide_coding/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion" redis Pulling postgres Pulling 6e771e15690e Already exists a8ae3b7f17cd Pulling fs layer 365f7b80ab06 Pulling fs layer 317ad5514417 Pulling fs layer 71a126f17b84 Pulling fs layer f8b151b6fedd Pulling fs layer 4f4fb700ef54 Pulling fs layer … +177 lines (ctrl+r to see all) ⏺ LangConnect 컨테이너에 오류가 발생했습니다. 로그를 확인해보겠습니다. ⏺ Bash(docker compose logs langconnect) ⎿ ttimes_langconnect | Using CPython 3.11.13 interpreter at: /usr/local/bin/python3 ttimes_langconnect | Creating virtual environment at: .venv ttimes_langconnect | Building langconnect @ file:///app … +112 lines (ctrl+r to expand) ⏺ LangConnect가 SUPABASE_URL 환경 변수를 요구하고 있습니다. langconnect/config.py를 확인해보겠습니다. ⏺ Read(langconnect/config.py) ⎿ Error: File does not exist. ⏺ Task(Find LangConnect config) ⎿ Done (5 tool uses · 21.7k tokens · 51.4s) --- > 슈파베이스를 사용하고 싶지 않아. langconnect 에서 Authorization 하는 Supabase 부분만 제거하고 실행할 수 없을까? --- ⏺ Supabase 인증을 제거하고 LangConnect를 실행할 수 있도록 수정하겠습니다. ⏺ Update Todos ⎿ ☒ 프로젝트 현황 파악 - 기존 코드베이스 분석 및 문서 검토 ☒ Planning Agent 개발 - 계획 수립 에이전트 구현 ☒ Research Agent 개발 - 자료조사 에이전트 구현 ☒ Report Writing Agent 개발 - 보고서 작성 에이전트 구현 ☒ All-Search MCP Server 구현 - FastMCP 2.0 기반 ☒ MCP 클라이언트 설정 - langchain-mcp-adapters 연동 ☒ Planning Agent A2A 서버 래핑 ☒ Research Agent A2A 서버 래핑 ☒ Report Writing Agent A2A 서버 래핑 ☒ UnifiedResearch Agent 구현 - Google ADK 기반 ☒ 통합 테스트 및 디버깅 ☐ LangConnect에서 Supabase 인증 제거 ⏺ Read(langconnect/langconnect/config.py) ⎿ Read 49 lines (ctrl+r to expand) ⏺ Read(langconnect/langconnect/auth.py) ⎿ Read 95 lines (ctrl+r to expand) ⏺ LangConnect에서 Supabase 인증을 제거하겠습니다. config.py와 auth.py를 수정하여 단순한 API 키 기반 인증으로 변경하겠습니다. ⏺ Update(langconnect/langconnect/config.py) ⎿ Updated langconnect/langconnect/config.py with 3 additions and 7 removals 1 import json 2 3 from langchain_core.embeddings import Embeddings 4 - from starlette.config import Config, undefined 4 + from starlette.config import Config 5 6 env = Config() 7 8 IS_TESTING = env("IS_TESTING", cast=str, default="").lower() == "true" 9 10 - if IS_TESTING: 11 - SUPABASE_URL = "" 12 - SUPABASE_KEY = "" 13 - else: 14 - SUPABASE_URL = env("SUPABASE_URL", cast=str, default=undefined) 15 - SUPABASE_KEY = env("SUPABASE_KEY", cast=str, default=undefined) 10 + # API Key for simple authentication (instead of Supabase) 11 + LANGCONNECT_API_KEY = env("LANGCONNECT_API_KEY", cast=str, default="test-api-key") 12 13 14 def get_embeddings() -> Embeddings: ⏺ Update(langconnect/langconnect/auth.py) ⎿ Updated langconnect/langconnect/auth.py with 2 removals 5 from fastapi import Depends 6 from fastapi.exceptions import HTTPException 7 from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer 8 - from gotrue.types import User 8 from starlette.authentication import BaseUser 9 - from supabase import create_client 9 10 from langconnect import config 11 ⏺ Update(langconnect/langconnect/auth.py) ⎿ Updated langconnect/langconnect/auth.py with 5 additions and 19 removals 41 return self.user_id 42 43 44 - def get_current_user(authorization: str) -> User: 45 - """Authenticate a user by validating their JWT token against Supabase. 44 + def validate_api_key(api_key: str) -> bool: 45 + """Validate API key against configured key. 46 47 - This function verifies the provided JWT token by making a request to Supabase. 48 - It requires the SUPABASE_URL and SUPABASE_KEY environment variables to be 49 - properly configured. 50 - 47 Args: 48 - authorization: JWT token string to validate 48 + api_key: API key string to validate 49 50 Returns: 51 - User: A Supabase User object containing the authenticated user's information 52 - 53 - Raises: 54 - HTTPException: With status code 500 if Supabase configuration is missing 55 - HTTPException: With status code 401 if token is invalid or authentication fails 51 + bool: True if API key is valid, False otherwise 52 """ 53 - supabase = create_client(config.SUPABASE_URL, config.SUPABASE_KEY) 54 - response = supabase.auth.get_user(authorization) 55 - user = response.user 53 + return api_key == config.LANGCONNECT_API_KEY 54 55 - if not user: 56 - raise HTTPException(status_code=401, detail="Invalid token or user not found") 57 - return user 55 56 - 56 def resolve_user( 57 credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)], 58 ) -> AuthenticatedUser | None: ⏺ Update(langconnect/langconnect/auth.py) ⎿ Updated langconnect/langconnect/auth.py with 6 additions and 13 removals 63 if not credentials.credentials: 64 raise HTTPException(status_code=401, detail="Invalid credentials") 65 66 - if config.IS_TESTING: 67 - if credentials.credentials in {"user1", "user2"}: 68 - return AuthenticatedUser(credentials.credentials, credentials.credentials) 69 - raise HTTPException( 70 - status_code=401, detail="Invalid credentials or user not found" 71 - ) 72 - 73 - user = get_current_user(credentials.credentials) 74 - 75 - if not user: 76 - raise HTTPException(status_code=401, detail="Invalid credentials") 77 - 78 - return AuthenticatedUser(user.id, user.user_metadata.get("name", "User")) 66 + # Simple API key validation 67 + if validate_api_key(credentials.credentials): 68 + # Return a default user for API key authentication 69 + return AuthenticatedUser("api-user", "API User") 70 + 71 + raise HTTPException(status_code=401, detail="Invalid API key") ⏺ 이제 .env.example에 LANGCONNECT_API_KEY를 추가하고, docker-compose.yml에서 LANGCONNECT_API_KEY를 설정하겠습니다. ⏺ Update(.env.example) ⎿ Updated .env.example with 1 addition and 1 removal 32 LOG_LEVEL=INFO 33 34 # LangConnect Configuration 35 - LANGCONNECT_API_KEY=your-langconnect-api-key 35 + LANGCONNECT_API_KEY=test-api-key 36 LANGCONNECT_API_URL=http://localhost:8080 37 38 # Agent Ports (for local development)

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/HyunjunJeon/vibecoding-lg-mcp-a2a'

If you have feedback or need assistance with the MCP directory API, please join our Discord server