Skip to content

Commit b05aa10

Browse files
authored
Merge pull request #45 from meilisearch/feature/custom-user-agent
Add custom user agent for Meilisearch MCP server
2 parents 280d880 + 07c3af4 commit b05aa10

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

src/meilisearch_mcp/__version__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
__version__ = "0.5.0"

src/meilisearch_mcp/client.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .keys import KeyManager
1010
from .logging import MCPLogger
1111
from .monitoring import MonitoringManager
12+
from .__version__ import __version__
1213

1314
logger = MCPLogger()
1415

@@ -20,7 +21,10 @@ def __init__(
2021
"""Initialize Meilisearch client"""
2122
self.url = url
2223
self.api_key = api_key
23-
self.client = Client(url, api_key)
24+
# Add custom user agent to identify this as Meilisearch MCP
25+
self.client = Client(
26+
url, api_key, client_agents=("meilisearch-mcp", f"v{__version__}")
27+
)
2428
self.indexes = IndexManager(self.client)
2529
self.documents = DocumentManager(self.client)
2630
self.settings = SettingsManager(self.client)

tests/test_user_agent.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import pytest
2+
from unittest.mock import patch, MagicMock
3+
from src.meilisearch_mcp.client import MeilisearchClient
4+
from src.meilisearch_mcp.__version__ import __version__
5+
6+
7+
def test_meilisearch_client_sets_custom_user_agent():
8+
"""Test that MeilisearchClient initializes with custom user agent"""
9+
with patch("src.meilisearch_mcp.client.Client") as mock_client:
10+
# Create a MeilisearchClient instance
11+
client = MeilisearchClient(url="http://localhost:7700", api_key="test_key")
12+
13+
# Verify that Client was called with the correct parameters
14+
mock_client.assert_called_once_with(
15+
"http://localhost:7700",
16+
"test_key",
17+
client_agents=("meilisearch-mcp", f"v{__version__}"),
18+
)
19+
20+
21+
def test_user_agent_includes_correct_version():
22+
"""Test that the user agent includes the correct version from __version__.py"""
23+
with patch("src.meilisearch_mcp.client.Client") as mock_client:
24+
client = MeilisearchClient()
25+
26+
# Extract the client_agents parameter from the call
27+
call_args = mock_client.call_args
28+
client_agents = call_args[1]["client_agents"]
29+
30+
# Verify format and version
31+
assert client_agents[0] == "meilisearch-mcp"
32+
assert client_agents[1] == "v0.5.0"
33+
assert client_agents[1] == f"v{__version__}"

0 commit comments

Comments
 (0)