Skip to main content
Glama
INTEGRATION_GUIDE.md3.22 kB
# CATS MCP Server - Toolsets Integration Guide ## Quick Start To integrate the default toolsets into your CATS MCP server: ### 1. Current State Your current `server.py` has 20 basic tools. The new `toolsets_default.py` provides 77 comprehensive tools organized into 5 domains. ### 2. Integration Options #### Option A: Replace Existing Tools (Recommended) ```python # server.py import os from typing import Any, Optional import httpx from dotenv import load_dotenv from fastmcp import FastMCP # Import toolset registration functions from toolsets_default import ( register_candidates_tools, register_jobs_tools, register_pipelines_tools, register_context_tools, register_tasks_tools ) load_dotenv() mcp = FastMCP("CATS API v3") # Configuration CATS_API_BASE_URL = os.getenv("CATS_API_BASE_URL", "https://api.catsone.com/v3") CATS_API_KEY = os.getenv("CATS_API_KEY", "") class CATSAPIError(Exception): """CATS API error""" pass async def make_request(method: str, endpoint: str, params: dict = None, json_data: dict = None) -> dict: """Make authenticated request to CATS API""" if not CATS_API_KEY: raise CATSAPIError("CATS_API_KEY not configured") url = f"{CATS_API_BASE_URL.rstrip('/')}/{endpoint.lstrip('/')}" headers = { "Authorization": f"Token {CATS_API_KEY}", "Content-Type": "application/json", } async with httpx.AsyncClient(timeout=30.0) as client: try: response = await client.request(method, url, headers=headers, params=params, json=json_data) response.raise_for_status() return response.json() except httpx.HTTPError as e: raise CATSAPIError(f"API error: {e}") # Register all default toolsets register_candidates_tools(mcp, make_request) register_jobs_tools(mcp, make_request) register_pipelines_tools(mcp, make_request) register_context_tools(mcp, make_request) register_tasks_tools(mcp, make_request) if __name__ == "__main__": mcp.run(transport="http") ``` ## Tool Coverage Summary ### After Integration: 77 Tools Across 5 Domains - **Candidates (28 tools):** Full CRUD + emails, phones, tags, work history, attachments - **Jobs (29 tools):** Full CRUD + sub-resources + job lists + applications - **Pipelines (12 tools):** Full CRUD + workflows + statuses - **Context (3 tools):** Site info + user authorization - **Tasks (5 tools):** Full task management ## Testing Commands ```bash # 1. Syntax validation python -m py_compile toolsets_default.py # 2. Start server python server.py # 3. List all tools curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result | length' # 4. Test a tool curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_site"}}' | jq '.' ``` ## Resources - **Tool Details:** See `TOOLSETS_DEFAULT_SUMMARY.md` - **API Reference:** `cats_collection.json` (Postman collection) - **CATS API Docs:** https://api.catsone.com/v3/docs --- **Status:** Ready for integration | **Tools:** 77 | **File Size:** 48KB (1,611 lines)

Latest Blog Posts

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/vanman2024/cats-mcp-server'

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