Compare commits

..

No commits in common. "f24f12c4ba3b6dfb1e17efcbcab8674ded05023b" and "5ab63b71cda35a773e92d0ef90373dad762896a9" have entirely different histories.

4 changed files with 5 additions and 20 deletions

View File

@ -3,7 +3,6 @@ import json
import logging import logging
from contextlib import AbstractAsyncContextManager from contextlib import AbstractAsyncContextManager
from typing import Literal, Callable, Any from typing import Literal, Callable, Any
from importlib import metadata
import jsonref import jsonref
from maintainer.ai.model.nacos_mcp_info import McpToolMeta, McpServerDetailInfo, \ from maintainer.ai.model.nacos_mcp_info import McpToolMeta, McpServerDetailInfo, \
@ -279,10 +278,6 @@ class NacosServer(Server):
asyncio.create_task(self.subscribe()) asyncio.create_task(self.subscribe())
if self._nacos_settings.SERVICE_REGISTER and (self.type == "mcp-sse" if self._nacos_settings.SERVICE_REGISTER and (self.type == "mcp-sse"
or self.type == "mcp-streamable"): or self.type == "mcp-streamable"):
version = metadata.version('nacos-mcp-wrapper-python')
service_meta_data = {
"source": f"nacos-mcp-wrapper-python-{version}",
**self._nacos_settings.SERVICE_META_DATA}
await self.naming_client.register_instance( await self.naming_client.register_instance(
request=RegisterInstanceParam( request=RegisterInstanceParam(
group_name=server_detail_info.remoteServerConfig.serviceRef.groupName, group_name=server_detail_info.remoteServerConfig.serviceRef.groupName,
@ -290,10 +285,8 @@ class NacosServer(Server):
ip=self._nacos_settings.SERVICE_IP, ip=self._nacos_settings.SERVICE_IP,
port=self._nacos_settings.SERVICE_PORT if self._nacos_settings.SERVICE_PORT else port, port=self._nacos_settings.SERVICE_PORT if self._nacos_settings.SERVICE_PORT else port,
ephemeral=self._nacos_settings.SERVICE_EPHEMERAL, ephemeral=self._nacos_settings.SERVICE_EPHEMERAL,
metadata=service_meta_data
) )
) )
logging.info(f"Register to nacos success,{self.name},version:{self.version}")
return return
mcp_tool_specification = None mcp_tool_specification = None
@ -342,7 +335,7 @@ class NacosServer(Server):
mcp_tool_specification, mcp_tool_specification,
endpoint_spec) endpoint_spec)
except Exception as e: except Exception as e:
logger.info(f"Found MCP server {self.name} in Nacos,try to update it") logger.info(f"Failed to create MCP server to Nacos,try to update mcp server")
version_detail = None version_detail = None
try: try:
version_detail = await self.mcp_service.get_mcp_server_detail( version_detail = await self.mcp_service.get_mcp_server_detail(
@ -351,12 +344,12 @@ class NacosServer(Server):
self.version self.version
) )
except Exception as e_2: except Exception as e_2:
logger.info(f" Version {self.version} of Mcp server {self.name} is not in Nacos, try to update it") logger.info(f"Cant found version {self.version} of Mcp server {self.name}")
if version_detail is None: if version_detail is None:
await self.mcp_service.update_mcp_server( await self.mcp_service.update_mcp_server(
self._nacos_settings.NAMESPACE, self._nacos_settings.NAMESPACE,
self.name, self.name,
True, False,
server_basic_info, server_basic_info,
mcp_tool_specification, mcp_tool_specification,
endpoint_spec endpoint_spec
@ -369,8 +362,6 @@ class NacosServer(Server):
f"mcp server info is not compatible,{self.name},version:{self.version},reason:{error_msg}" f"mcp server info is not compatible,{self.name},version:{self.version},reason:{error_msg}"
) )
if self._nacos_settings.SERVICE_REGISTER: if self._nacos_settings.SERVICE_REGISTER:
version = metadata.version('nacos-mcp-wrapper-python')
service_meta_data = {"source": f"nacos-mcp-wrapper-python-{version}",**self._nacos_settings.SERVICE_META_DATA}
await self.naming_client.register_instance( await self.naming_client.register_instance(
request=RegisterInstanceParam( request=RegisterInstanceParam(
group_name="DEFAULT_GROUP" if self._nacos_settings.SERVICE_GROUP is None else self._nacos_settings.SERVICE_GROUP, group_name="DEFAULT_GROUP" if self._nacos_settings.SERVICE_GROUP is None else self._nacos_settings.SERVICE_GROUP,
@ -378,10 +369,8 @@ class NacosServer(Server):
ip=self._nacos_settings.SERVICE_IP, ip=self._nacos_settings.SERVICE_IP,
port=self._nacos_settings.SERVICE_PORT if self._nacos_settings.SERVICE_PORT else port, port=self._nacos_settings.SERVICE_PORT if self._nacos_settings.SERVICE_PORT else port,
ephemeral=self._nacos_settings.SERVICE_EPHEMERAL, ephemeral=self._nacos_settings.SERVICE_EPHEMERAL,
metadata=service_meta_data,
) )
) )
asyncio.create_task(self.subscribe()) asyncio.create_task(self.subscribe())
logging.info(f"Register to nacos success,{self.name},version:{self.version}")
except Exception as e: except Exception as e:
logging.error(f"Failed to register MCP server to Nacos: {e}") logging.error(f"Failed to register MCP server to Nacos: {e}")

View File

@ -63,10 +63,6 @@ class NacosSettings(BaseSettings):
description="nacos connection labels", description="nacos connection labels",
default={}) default={})
SERVICE_META_DATA : Optional[dict] = Field(
description="nacos service metadata",
default={})
class Config: class Config:
env_prefix = "NACOS_MCP_SERVER_" env_prefix = "NACOS_MCP_SERVER_"

View File

@ -1,7 +1,7 @@
psutil==7.0.0 psutil==7.0.0
anyio==4.9.0 anyio==4.9.0
mcp==1.9.2 mcp==1.9.2
nacos-sdk-python>=2.0.9 nacos-sdk-python>=2.0.8
pydantic==2.11.3 pydantic==2.11.3
pydantic-settings==2.9.1 pydantic-settings==2.9.1
jsonref==1.1.0 jsonref==1.1.0

View File

@ -9,7 +9,7 @@ def read_requirements():
setup( setup(
name='nacos-mcp-wrapper-python', name='nacos-mcp-wrapper-python',
version='1.0.9', # 项目的版本号 version='1.0.7', # 项目的版本号
packages=find_packages( packages=find_packages(
exclude=["test", "*.tests", "*.tests.*", "tests.*", "tests"]), # 自动发现所有包 exclude=["test", "*.tests", "*.tests.*", "tests.*", "tests"]), # 自动发现所有包
url="https://github.com/nacos-group/nacos-mcp-wrapper-python", url="https://github.com/nacos-group/nacos-mcp-wrapper-python",