Skip to main content
Glama
tools.success.spec.ts1.58 kB
import { describe, it, expect } from 'vitest'; import { createTools } from '../src/tools/index.js'; class GLMock { listProjects = async () => [{ id: 1, name: 'p1' }]; listMergeRequests = async () => [{ id: 11, title: 'mr' }]; listIssues = async () => [{ id: 21, title: 'issue' }]; } class JiraMock { searchIssues = async () => ({ issues: [{ key: 'TEST-1' }] }); getIssue = async () => ({ key: 'TEST-2' }); } describe('tools success paths', () => { const tools = createTools({ cfg: {}, gitlab: new GLMock() as any, jira: new JiraMock() as any }); it('returns parsed GitLab projects', async () => { const res = await tools.gitlab_list_projects(); expect(Array.isArray(res)).toBe(true); expect((res as any)[0].id).toBe(1); }); it('returns parsed GitLab merge requests', async () => { const res = await tools.gitlab_list_merge_requests(123, 'opened'); expect(Array.isArray(res)).toBe(true); expect((res as any)[0].id).toBe(11); }); it('returns parsed GitLab issues', async () => { const res = await tools.gitlab_list_issues(123); expect(Array.isArray(res)).toBe(true); expect((res as any)[0].id).toBe(21); }); it('returns parsed Jira search results', async () => { const res = await tools.jira_search_issues('project=TEST', 2); expect(Array.isArray((res as any).issues)).toBe(true); expect((res as any).issues[0].key).toBe('TEST-1'); }); it('returns parsed Jira issue', async () => { const res = await tools.jira_get_issue('TEST-2'); expect((res as any).key).toBe('TEST-2'); }); });

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/ashabbir/multi-mcp'

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