@kula-ai/mcp-server
MCP server enabling AI assistants to connect to Kula recruiting API for managing jobs, candidates, applications, webhooks, and more.
README
@kula-ai/mcp-server
An MCP (Model Context Protocol) server for the Kula recruiting API. Connect AI assistants like Claude to your Kula account to list jobs, manage applications, configure webhooks, and more.
Quick Start
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kula": {
"command": "npx",
"args": ["-y", "@kula-ai/mcp-server"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}
<details> <summary>With Cursor</summary>
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"kula": {
"command": "npx",
"args": ["-y", "@kula-ai/mcp-server"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}
</details>
<details> <summary>With Claude Code</summary>
claude mcp add kula -- npx -y @kula-ai/mcp-server
Then set KULA_API_KEY in your environment.
</details>
Manual
npx @kula-ai/mcp-server
Configuration
| Environment Variable | Required | Description |
|---|---|---|
KULA_API_KEY |
Yes | Your Kula API key |
Get your API key from Kula Developer Settings.
Available Tools
51 tools across 13 categories:
<details> <summary>Organization (4 tools)</summary>
| Tool | Description |
|---|---|
list_departments |
List all departments in the organization as a nested tree structure |
list_offices |
List all offices in the organization |
list_milestones |
List all hiring milestones (pipeline stage groupings) |
list_users |
List all active internal users (recruiters, hiring managers, coordinators) |
</details>
<details> <summary>Sources (1 tool)</summary>
| Tool | Description |
|---|---|
list_sources |
List all candidate sources in the organization |
</details>
<details> <summary>Rejection Reasons (1 tool)</summary>
| Tool | Description |
|---|---|
list_rejection_reasons |
List all rejection reasons configured in the organization |
</details>
<details> <summary>Custom Fields (1 tool)</summary>
| Tool | Description |
|---|---|
list_custom_fields |
List custom fields by subject type. Required — valid values: job, candidate, requisition, offer |
</details>
<details> <summary>Jobs (3 tools)</summary>
| Tool | Description |
|---|---|
list_jobs |
List jobs with filters (status, department, office, date ranges, sort) |
search_jobs |
Search jobs by title (partial match) with optional filters |
get_job |
Get details of a specific job |
</details>
<details> <summary>Job Stages (3 tools)</summary>
| Tool | Description |
|---|---|
list_job_stages |
List all pipeline stages for a specific job |
create_job_stage |
Create a new pipeline stage for a job |
list_stage_activities |
List all activities configured for a specific job stage |
</details>
<details> <summary>Job Posts (2 tools)</summary>
| Tool | Description |
|---|---|
list_job_posts |
List published job posts on the job board |
get_job_post |
Get details of a specific job post from the job board |
</details>
<details> <summary>Candidates (5 tools)</summary>
| Tool | Description |
|---|---|
create_candidate |
Create a new candidate in the system |
list_candidates |
List candidates with simple filters (email, date ranges, sort) |
search_candidates |
Search candidates by name, email, skills, tags, location, and more |
get_candidate |
Get details of a specific candidate |
update_candidate |
Update an existing candidate's profile |
</details>
<details> <summary>Applications (6 tools)</summary>
| Tool | Description |
|---|---|
list_applications |
List job applications |
get_application |
Get details of a specific application |
update_application_stage |
Update the stage of a specific application |
list_application_notes |
List notes on a specific application |
create_application_note |
Add a note to a specific application |
update_application_note |
Update an existing note on an application |
</details>
<details> <summary>Scorecard Submissions (1 tool)</summary>
| Tool | Description |
|---|---|
list_scorecard_submissions |
List scorecard submissions for a specific application |
</details>
<details> <summary>Webhooks (12 tools)</summary>
| Tool | Description |
|---|---|
list_webhooks |
List all configured webhooks |
create_webhook |
Create a new webhook subscription |
get_webhook |
Get details of a specific webhook |
update_webhook |
Update an existing webhook configuration |
delete_webhook |
Delete a webhook |
enable_webhook |
Enable a disabled webhook |
disable_webhook |
Disable an active webhook |
rotate_webhook_secret |
Rotate the signing secret for a webhook |
test_webhook |
Send a test payload to a webhook endpoint |
list_webhook_logs |
List recent delivery logs for a webhook |
list_webhook_events |
List all available webhook event types |
get_webhook_sample_payload |
Get a sample webhook payload for a specific event type |
</details>
<details> <summary>Requisitions (6 tools)</summary>
| Tool | Description |
|---|---|
list_requisitions |
List all requisitions for your account |
get_requisition |
Get detailed information about a specific requisition |
list_requisition_fields |
List default and custom field definitions for requisitions |
create_requisition |
Create a new requisition (supports linked groups via head_count) |
update_requisition |
Update an existing requisition |
close_requisition |
Close a requisition |
</details>
<details> <summary>Autocomplete (6 tools)</summary>
| Tool | Description |
|---|---|
search_companies |
Search companies by name |
list_industries |
List all available industries |
search_locations |
Search locations by query |
search_institutions |
Search academic institutions by name |
search_disciplines |
Search academic disciplines by name |
list_degrees |
List all available academic degrees |
</details>
Development
# Use correct Node version
nvm use
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js
Connecting locally
To test your local build with an AI client instead of the published package:
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"kula": {
"command": "node",
"args": ["/absolute/path/to/kula-mcp/build/index.js"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}
<details> <summary>With Cursor</summary>
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"kula": {
"command": "node",
"args": ["/absolute/path/to/kula-mcp/build/index.js"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}
</details>
<details> <summary>With Claude Code</summary>
claude mcp add kula -- node /absolute/path/to/kula-mcp/build/index.js
Then set KULA_API_KEY in your environment.
</details>
Note: The server uses STDIO transport, so there's no hot-reload. After rebuilding (
npm run buildor vianpm run dev), restart the MCP client to pick up changes.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.