Skip to main content
Glama

GitLab MCP Server

test_tools.py2.84 kB
#!/usr/bin/env python3 """Test script to verify GitLab MCP tools return proper CallToolResult objects.""" import asyncio import sys from tools.list_merge_requests import list_merge_requests from tools.get_merge_request_details import get_merge_request_details from tools.get_merge_request_reviews import get_merge_request_reviews from mcp.types import CallToolResult from decouple import config GITLAB_URL = config('GITLAB_URL', default='https://git.partnerz.io') PROJECT_ID = config('GITLAB_PROJECT_ID', default='237') ACCESS_TOKEN = config('GITLAB_ACCESS_TOKEN', default='') async def test_list_merge_requests(): """Test list_merge_requests tool.""" print("Testing list_merge_requests...") args = {"state": "opened", "limit": 2} result = await list_merge_requests(GITLAB_URL, PROJECT_ID, ACCESS_TOKEN, args) print(f"Result type: {type(result)}") print(f"Is CallToolResult: {isinstance(result, CallToolResult)}") if isinstance(result, CallToolResult): print(f"isError: {result.isError}") print(f"Content type: {type(result.content)}") if result.content: print(f"First content item: {result.content[0].text[:100]}...") print("=" * 50) async def test_get_merge_request_details(): """Test get_merge_request_details tool.""" print("Testing get_merge_request_details...") args = {"merge_request_iid": 1047} result = await get_merge_request_details( GITLAB_URL, PROJECT_ID, ACCESS_TOKEN, args ) print(f"Result type: {type(result)}") print(f"Is CallToolResult: {isinstance(result, CallToolResult)}") if isinstance(result, CallToolResult): print(f"isError: {result.isError}") print(f"Content type: {type(result.content)}") if result.content: print(f"First content item: {result.content[0].text[:100]}...") print("=" * 50) async def test_get_merge_request_reviews(): """Test get_merge_request_reviews tool.""" print("Testing get_merge_request_reviews...") args = {"merge_request_iid": 1047} result = await get_merge_request_reviews( GITLAB_URL, PROJECT_ID, ACCESS_TOKEN, args ) print(f"Result type: {type(result)}") print(f"Is CallToolResult: {isinstance(result, CallToolResult)}") if isinstance(result, CallToolResult): print(f"isError: {result.isError}") print(f"Content type: {type(result.content)}") if result.content: print(f"Full content: {result.content[0].text}") print("=" * 50) async def main(): """Run all tests.""" if not ACCESS_TOKEN: print("Error: GITLAB_ACCESS_TOKEN not set") sys.exit(1) await test_list_merge_requests() await test_get_merge_request_details() await test_get_merge_request_reviews() if __name__ == "__main__": asyncio.run(main())

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/amirsina-mandegari/gitlab-mcp-server'

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