
Tacitbase MCP Server
MCP server for connecting to you typesense collections and retrieve data using your favorite MCP client (Claude/ Cursor)
what is Tacitbase MCP Server?
Tacitbase MCP Server is a Machine Comprehension Protocol (MCP) server designed to connect to Typesense collections, enabling advanced search capabilities through both Tacitbase's native search and Typesense.
how to use Tacitbase MCP Server?
To use the server, install the dependencies, build the server, and run it. You can then perform searches using various methods such as basic, vector, and semantic search.
key features of Tacitbase MCP Server?
- Basic keyword search with filtering and sorting
- Vector search for similarity-based matching
- Semantic search with natural language understanding
- Fallback to Tacitbase's native search
- Tool registration for searching candidates
use cases of Tacitbase MCP Server?
- Finding candidates based on specific skills and experiences.
- Conducting similarity searches to identify candidates with similar profiles.
- Utilizing natural language queries to enhance search results.
FAQ from Tacitbase MCP Server?
- What programming language is used for the server?
The server is built using Go.
- How do I configure the server?
You can configure the server using environment variables for authentication and connection settings.
- Can I extend the server functionality?
Yes! You can modify the
main.go
file to add new tools or modify existing ones.
Tacitbase MCP Server
This is a Machine Comprehension Protocol (MCP) server for Tacitbase that provides advanced search capabilities using both Tacitbase's native search and Typesense for enhanced search features.
Project Structure
The project follows a clean, modular architecture:
.
├── models/ # Data structures and types
├── services/ # Business logic and external service interactions
├── handlers/ # Request handlers and routing logic
├── tools/ # Tool registration and configuration
├── main.go # Application entry point
└── README.md # Project documentation
Packages
models
: Contains all data structures and types used across the applicationservices
: Implements the business logic and external service interactionshandlers
: Contains the request handlers that process incoming requeststools
: Registers the tools available for searching candidates
Features
- Basic keyword search with filtering and sorting
- Vector search for similarity-based matching
- Semantic search with natural language understanding
- Fallback to Tacitbase's native search when needed
- Tool registration for searching candidates
Search Tools
search_candidates
)
1. Basic Search (- Keyword-based search with typo tolerance
- Supports field-specific search
- Filtering and sorting capabilities
- Group by functionality
- Exact matching option
vector_search_candidates
)
2. Vector Search (- Similarity search using vector embeddings
- Ideal for finding candidates with similar profiles
- Supports hybrid search combining vectors with filters
semantic_search_candidates
)
3. Semantic Search (- Natural language understanding
- Automatic embedding generation
- Support for multiple embedding models (OpenAI, SBERT, E5)
- Hybrid search combining semantic understanding with filters
Configuration
Environment Variables
TACITBASE_AUTH_TOKEN
: Authentication token for Tacitbase APITYPESENSE_API_KEY
: API key for TypesenseTYPESENSE_HOST
: Typesense host (default: localhost)TYPESENSE_PORT
: Typesense port (default: 8108)TYPESENSE_PROTOCOL
: Protocol for Typesense (default: http)
Installation
- Install dependencies:
go mod download
- Build the server:
go build -o tb-mcp-server
- Run the server:
./tb-mcp-server
Example Usage
Basic Search
{
"query": "golang developer",
"search_fields": "skills,latest_experience",
"filter_fields": "location:San Francisco",
"sort_by": "latest_experience:desc",
"page": 1,
"per_page": 20
}
Vector Search
{
"vector_query": "[0.1, 0.2, ..., 0.512]",
"filter_fields": "years_of_experience:>5",
"page": 1,
"per_page": 20
}
Semantic Search
{
"query": "experienced team lead with cloud architecture background",
"embedding_model": "openai",
"filter_fields": "years_of_experience:>8",
"page": 1,
"per_page": 20
}
Development
To modify or extend the server:
- Edit
main.go
to add new tools or modify existing ones - Run tests (if any)
- Build and test the server