Overview

Model Context Protocol (MCP) servers are how Almanac connects to external data sources. Whether you're using built-in integrations (Slack, GitHub, Notion) or building your own, this section explains how to create and configure data sources.

What is an MCP Server?

An MCP server is a standardized interface that exposes data from any API or service. Think of it as a translator that speaks your API's language and converts it to a format Almanac understands.

Your API → MCP Server → Almanac

Examples:

  • Slack MCP Server: Exposes Slack's API (channels, messages, users)

  • GitHub MCP Server: Exposes GitHub's API (repos, issues, PRs)

  • Custom MCP Server: Your proprietary system, database, or API

Why MCP?

Standardization: Write once, works everywhere

  • Same protocol for all data sources

  • No custom integration code per source

  • Works with any MCP-compatible tool (Claude Desktop, Cline, Zed, etc.)

Flexibility: Any data source

  • REST APIs

  • GraphQL endpoints

  • Databases

  • File systems

  • Custom protocols

Security: Built-in OAuth support

  • Standard OAuth 2.0 and 2.1 flows

  • Secure credential storage

  • Token refresh handling

OAuth Flow Notes

OAuth 2.0:

  • Requires both client ID and client secret to be manually entered

  • Client secret must be kept confidential

  • Suitable for server-to-server authentication

OAuth 2.1:

  • Streamlined authentication flow

  • Uses PKCE (Proof Key for Code Exchange) by default

  • Does not require client secret for public clients

  • Enhanced security for mobile and single-page applications

  • Recommended for new implementations

Almanac supports both OAuth 2.0 and 2.1, allowing you to choose the appropriate flow based on your security requirements and application type.

Two Ways to Configure

Almanac offers two methods to create indexing configurations:

Let Almanac automatically analyze your MCP server and generate the configuration:

  • Zero Code: Point and click interface

  • Automatic: Discovers tools, classifies them, generates config

  • Validated: Tests config before saving

  • Iterative: Auto-fixes common errors

Best for: Most use cases, especially when starting

Learn More →arrow-up-right

2. Manual JSON Method

Write the configuration file yourself:

  • Full Control: Specify exact behavior

  • Advanced Features: Custom transformations, grouping, relationships

  • Version Control: Track changes in Git

  • Reusable: Share configs across teams

Best for: Complex requirements, advanced users

Learn More →arrow-up-right

Quick Example: Connecting a Data Source

Using the UI (Assisted Method)

Total time: ~2 minutes

Using JSON (Manual Method)

Total time: ~10-30 minutes (depending on complexity)

Built-In MCP Servers

Almanac includes several pre-built MCP servers:

Slack

What it indexes:

  • Channels

  • Messages

  • Threads

  • Users

OAuth: ✅ Supported Config: Auto-generated

GitHub

What it indexes:

  • Repositories

  • Issues

  • Pull Requests

  • Commits

  • Discussions

OAuth: ✅ Supported Config: Auto-generated

Notion

What it indexes:

  • Databases

  • Pages

  • Blocks

OAuth: ✅ Supported Config: Auto-generated

Fathom

What it indexes:

  • Website analytics

  • Page views

  • Events

OAuth: ✅ Supported Config: Auto-generated

Creating Your Own MCP Server

Building a custom MCP server is straightforward:

Option 1: Use MCP SDK

Option 2: Use HTTP Transport

Expose tools via HTTP endpoints:

Full Guide →arrow-up-right

Configuration Workflow

Here's the complete flow from MCP server to searchable data:

Common Use Cases

Internal APIs

Scenario: Index your company's internal tools

Databases

Scenario: Index PostgreSQL tables

File Systems

Scenario: Index local documentation

Third-Party APIs

Scenario: Index external services

Best Practices

Tool Design

DO: Make tools focused and specific

DO: Use pagination for large datasets

DO: Return structured data

Security

DO: Use OAuth for authentication ✅ DO: Validate all inputs ✅ DO: Rate limit your endpoints ✅ DO: Encrypt sensitive data

DON'T: Store plaintext credentials ❌ DON'T: Expose internal endpoints publicly ❌ DON'T: Return sensitive data in tool responses

Testing Your MCP Server

Before connecting to Almanac, test your MCP server:

1. Manual Testing

2. MCP Inspector

Use the official MCP inspector tool:

3. Integration Testing

Connect to Almanac in development mode:

Troubleshooting

Common Issues

Issue: Tools not appearing in Almanac

Issue: Config generation fails

Issue: OAuth connection fails

Next Steps

Resources

Last updated

Was this helpful?