Nacos MCP Server

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports reading and parsing Markdown content in configuration files stored in Nacos.

  • Integrates with Nacos via Swagger Admin API (v3.x), allowing interaction with Nacos cluster configuration and service discovery features.

mcp-server-nacos: Nacos MCP 서버

개요

Nacos는 동적 서비스 검색, 구성 및 서비스 관리를 위해 설계된 사용하기 쉬운 플랫폼입니다. 클라우드 네이티브 애플리케이션과 마이크로서비스 플랫폼을 쉽게 구축할 수 있도록 지원합니다.

이 MCP(Model Context Protocol) 서버는 Nacos 상호작용 및 자동화를 위한 서버입니다. 이 서버는 대용량 언어 모델을 통해 Nacos 클러스터의 namespace , serviceconfiguration 관련 정보를 검색하고 읽을 수 있는 도구를 제공합니다.

mcp-server-nacos 현재 초기 개발 단계에 있습니다. 서버 개발 및 개선 과정에서 기능 및 사용 가능한 도구가 변경 및 확장될 수 있습니다. 또한, mcp-server-nacos 현재 버전에서는 읽기, 검색 및 목록 작업만 제공하며 쓰기 작업은 지원하지 않습니다. 쓰기 작업은 향후 버전에서 지원될 예정입니다.

mcp-server-nacos 필요한 버전에 대한 또 다른 참고 사항은 다음과 같습니다.

지엑스피1

도구

  1. list_namespaces
    • 현재 Nacos 클러스터의 네임스페이스 목록을 검색합니다.
    • 입력:
      • 없음
    • 반환: 현재 Nacos 클러스터의 네임스페이스 목록입니다.
  2. list_services
    • 이 도구는 지정된 네임스페이스에 속한 서비스 목록을 검색합니다. 응답 형식은 withInstances 매개변수에 따라 달라집니다. withInstances=true : 인스턴스( ServiceDetailInfo 객체)를 포함한 서비스 세부 정보를 반환합니다. withInstances=false : 인스턴스( ServiceView 객체)를 제외한 서비스 메타데이터를 반환합니다. **참고:** withInstances=true 인 경우 API가 메모리와 네트워크를 너무 많이 사용할 수 있습니다. 서비스가 적거나 하나만 있는 인스턴스 목록만 가져오려면 List Service Instances 와 함께 withInstances=false 사용하는 것이 좋습니다.
    • 입력:
      • pageNo (숫자): 현재 페이지 번호, 기본값은 1입니다.
      • pageSize (숫자): 각 페이지의 서비스 크기, 기본값은 100입니다.
      • namespaceId (문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupNameParam (문자열, 선택 사항): 서비스의 groupName 패턴, 기본값은 null이며 누락된 경우 모든 그룹을 의미합니다.
      • serviceNameParam (문자열, 선택 사항): 서비스의 serviceName 패턴, 기본값은 null로, 누락된 경우 모든 서비스를 의미합니다.
      • ignoreEmptyService (bool, 선택 사항): 결과에서 빈 서비스를 무시할지 여부, 기본값은 true입니다.
      • withInstances (bool, 선택 사항): 결과에 각 서비스 아래에 인스턴스를 포함하는지 여부, 권장 사항 및 기본값은 false입니다.
    • 반환: 지정된 네임스페이스에 속한 서비스 목록입니다.
  3. get_service
    • 이 도구는 인스턴스 목록을 제외한 메타데이터와 클러스터를 포함한 지정된 서비스의 자세한 정보를 검색합니다.
    • 입력:
      • namespaceId (문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은 DEFAULT_GROUP 입니다.
      • serviceName (문자열): 서비스의 serviceName 패턴, 필수입니다.
    • 반환: 지정된 서비스에 대한 자세한 정보.
  4. list_service_instances
    • 이 도구는 지정된 서비스에 대한 인스턴스 목록을 검색합니다.
    • 입력:
      • namespaceId (문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은 DEFAULT_GROUP 입니다.
      • serviceName (문자열): 서비스의 serviceName 패턴, 필수입니다.
      • clusterName (문자열, 선택 사항): 서비스의 인스턴스 클러스터 이름입니다. 선택 사항이며 기본값은 null로 모든 클러스터와 일치함을 의미합니다.
    • 반환: 지정된 서비스에 대한 인스턴스 목록입니다.
  5. list_service_subscribers
    • 이 도구는 지정된 서비스의 구독자 목록을 검색합니다.
    • 입력:
      • pageNo (숫자): 현재 페이지 번호, 기본값은 1입니다.
      • pageSize (숫자): 각 페이지의 서비스 구독자 크기, 기본값은 100입니다.
      • namespaceId (문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은 DEFAULT_GROUP 입니다.
      • serviceName (문자열): 서비스의 serviceName 패턴, 필수입니다.
      • aggregation (bool, 선택 사항): 전체 클러스터에서 집계할지 여부입니다.
    • 반환: 지정된 서비스의 구독자 목록입니다.
  6. list_configs
    • 이 도구는 지정된 네임스페이스 아래의 구성 목록을 검색합니다.
    • 입력:
      • pageNo (숫자): 현재 페이지 번호, 기본값은 1입니다.
      • pageSize (숫자): 각 페이지의 구성 크기, 기본값은 100입니다.
      • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열, 선택 사항): config의 groupName 패턴, 기본값 null은 모든 그룹을 의미합니다.
      • dataId (문자열, 선택 사항): config의 dataId 패턴, 기본값 null은 모든 dataId를 의미합니다.
      • type (문자열, 선택 사항): 구성의 유형, 기본값 null은 모든 유형을 의미합니다.
      • configTags (문자열, 선택 사항): config의 태그, 기본값은 null로 모든 태그를 의미합니다.
      • appName (문자열, 선택 사항): configs의 appName, 기본값은 null이면 모든 appName을 의미합니다.
      • search (문자열, 선택 사항): 목록 구성의 검색 방법, 기본값은 blur 이고 선택 사항 값은 accurate .
    • 반환: 지정된 네임스페이스 아래의 구성 목록입니다.
  7. get_config
    • 지정된 구성의 세부 정보를 검색합니다.
    • 입력:
      • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열): config의 groupName, 필수.
      • dataId (문자열): config의 dataId, 필수.
    • 반환: 지정된 구성의 세부 정보.
  8. list_config_history
    • 이 도구는 구성의 전체 게시 기록을 검색합니다.
    • 입력:
      • pageNo (숫자): 현재 페이지 번호, 기본값은 1입니다.
      • pageSize (숫자): 각 페이지의 구성 기록 레코드 크기입니다. 기본값은 100입니다.
      • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열): config의 groupName, 필수.
      • dataId (문자열): config의 dataId, 필수.
    • 반환: 지정된 네임스페이스 아래의 구성 목록입니다.
  9. get_config_history
    • 구성의 특정 과거 변경 기록을 검색합니다.
    • 입력:
      • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
      • groupName (문자열): config의 groupName, 필수.
      • dataId (문자열): config의 dataId, 필수.
      • nid (숫자): 구성 기록 레코드의 실제 ID, 구성 기록 도구 목록에서 가져오기, id 필드.
    • 반환: 구성의 과거 변경 기록.
  10. list_config_listeners
  • 특정 구성을 구독한 리스너 목록을 검색합니다.
  • 입력:
    • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
    • groupName (문자열): config의 groupName, 필수.
    • dataId (문자열): config의 dataId, 필수.
    • aggregation (bool, 선택 사항): 전체 클러스터에서 집계할지 여부입니다.
  • 반환: 특정 구성을 구독한 리스너 목록입니다.
  1. list_listened_configs
  • 특정 클라이언트 IP 주소가 구독한 구성 목록을 검색합니다.
  • 입력:
    • namespaceId (문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우 public 입니다.
    • ip (문자열): 구성 리스너의 클라이언트 IP, 필수.
    • aggregation (bool, 선택 사항): 전체 클러스터에서 집계할지 여부입니다.
  • 반환: 특정 클라이언트 IP 주소가 구독한 구성을 나열합니다.

설치

uv 사용(권장)

uv 사용하면 별도의 설치가 필요하지 않습니다. uvx 사용하여 mcp-server-nacos를 직접 실행합니다.

PIP 사용

또는 pip를 통해 mcp-server-nacos 설치할 수 있습니다.

pip install mcp-server-nacos

설치 후 다음을 사용하여 스크립트로 실행할 수 있습니다.

python -m mcp_server_nacos

구성

Claude Desktop과 함께 사용

claude_desktop_config.json 에 다음을 추가하세요:

"mcpServers": { "git": { "command": "uvx", "args": [ "nacos-mcp-server", "--host", "your_nacos_host", "--port", "your_nacos_main_port, such as 8848", "--access_token", "your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`" ], } }

command 필드에 uvx 실행 파일의 전체 경로를 입력해야 할 수도 있습니다. MacOS/Linux에서는 which uvx , Windows에서는 where uvx 실행하여 경로를 확인할 수 있습니다.

"mcpServers": { "git": { "command": "python", "args": [ "-m", "nacos-mcp-server", "--host", "your_nacos_host", "--port", "your_nacos_main_port, such as 8848", "--access_token", "your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`" ], } }

개발

지역 개발을 진행 중이라면 다음 단계를 따르세요.

  1. 이 저장소를 로컬 환경에 복제합니다.
  2. 원하는 기능을 구현하려면 src/mcp_server_nacos 의 코드를 수정하세요.
  3. Claude 데스크톱 앱을 사용하여 테스트해 보세요. claude_desktop_config.json 파일에 다음을 추가하세요.
{ "mcpServers": { "mcp-server-nacos": { "command": "uv", "args": [ "--directory", "/<path to mcp-server-nacos>/src/mcp_server_nacos", "run", "mcp-server-nacos" ] } }

특허

mcp-server-nacos는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 즉, Apache 2.0 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

대규모 언어 모델을 통해 Nacos 서비스 검색 및 구성 관리와의 상호작용을 가능하게 하는 서버로, 네임스페이스, 서비스 및 구성에 대한 읽기 전용 액세스를 제공합니다.

  1. Overview
    1. Tools
  2. Installation
    1. Using uv (recommended)
    2. Using PIP
  3. Configuration
    1. Usage with Claude Desktop
  4. Development
    1. License
      ID: 4znv103es6