Back to MCP Servers

Metorial

🎖️ 📇 ☁️ Connect AI agents to 600+ integrations with a single interface - OAuth, scaling, and monitoring included

other-tools-and-integrationsmonitoringaiagent
By metorial
3.3k365Updated todayTypeScriptApache-2.0

Installation

npx -y metorial

Configuration

{
  "mcpServers": {
    "metorial": {
      "command": "npx",
      "args": ["-y", "metorial"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<img src="./assets/repo-header.webp" alt="Metorial" width="100%" /> <br /> <h1 align="center">Metorial (YC F25)</h1> <p align="center"> Open-source identity and access layer for AI agents. <br /> Connect agents to real systems with consistent auth, permissions, and observability. </p>

[!TIP] Skip the setup and go hosted: The fastest, simplest and most reliable way to use Metorial is to sign up to our hosted platform.

➡️ Get Started (for free)

Introduction

Agents are being connected to production systems, but without a consistent identity and access layer around them: limited access control, no auditing, and no standard access restrictions. Metorial solves that.

Metorial is a control plane for agent access to external systems. It sits between agents and integrations, handling auth, permissions, and observability in a consistent way. Instead of wiring integrations ad hoc, teams get a shared layer that standardizes how agents interact with systems.

Core Capabilities

  • 1200+ integrations across SaaS tools, enterprise systems, data sources, and custom MCP servers.
  • Auth and token lifecycle management for OAuth, API keys, service accounts, and other credential flows.
  • RBAC, SAML SSO, and IAM built in so agent access follows your existing security model.
  • Scoped permissions per agent, workflow, team, or environment.
  • Audit logs and traceability for agent actions, including which agent acted with whose credentials.
  • Shared access patterns across teams and projects instead of one-off integration code.

Metorial for Developers

Metorial gives developers a single interface for connecting agents to real systems.

  • Use integrations across tools like Claude Code, Codex, and Cursor without breaking security policies.
  • Expose integrations as tools to any agent framework.
  • Unify OAuth, API keys, and other auth flows into one magic URL.
  • Reuse connections across projects, environments, and people.
  • Avoid re-implementing integration and auth logic for every app.

You write against one API, or use one connection URL, and Metorial handles the rest.

Metorial for Security

Metorial provides structure and visibility into how agents access systems.

  • Centralized access control with RBAC, SAML SSO, IAM, and scoped credentials.
  • Clear permission boundaries per agent.
  • Audit logs for all actions, including which agent performed them using whose credentials.
  • Controlled sharing of integrations.
  • Consistent and secure credential handling.

This makes agent activity enforceable and inspectable without relying on manual processes. Makes your Head of AI happy, lets your CISO sleep at night.

Ecosystem

  • Metorial: Integration catalog covering SaaS tools and enterprise systems.
  • Metorial Platform: Core engine, open source and self-hostable.
  • Metorial CLI: Agent-first CLI for interacting with integrations.
  • Lowerdeck: Shared libraries across the stack.
  • Starbase: MCP debugging and testing utility.

SDKs

The SDKs expose the Metorial API and integrate with agent frameworks.

They handle auth, access control, and tool exposure in a consistent way.

  • <img src="https://raw.githubusercontent.com/metorial/metorial-platform/refs/heads/dev/assets/typescript.png" width="12px" height="12px" /> JavaScript / TypeScript
  • <img src="https://raw.githubusercontent.com/metorial/metorial-platform/refs/heads/dev/assets/python.svg" width="12px" height="12px" /> Python

If you want to build a custom integration, check out our API documentation for details on how to use the Metorial API directly.

Self-Hosting

The Metorial Platform is the code that powers the engine behind Metorial. It is open source and can be self-hosted. You can use it to run your own Metorial instance, powered by the MCP servers in this repo.

Quick Start

The simplest way to get started is with Metorial Search, a built-in web search provider that requires no auth configuration.

JavaScript / TypeScript

import { Metorial } from 'metorial';
import { metorialAiSdk } from '@metorial/ai-sdk';
import { anthropic } from '@ai-sdk/anthropic';
import { stepCountIs, streamText } from 'ai';

let metorial = new Metorial({ apiKey: process.env.METORIAL_API_KEY! });

let deployment = await metorial.providerDeployments.create({
  name: 'Metorial Search',
  providerId: 'metorial-search'
});

let session = await metorial.connect({
  adapter: metorialAiSdk(),
  providers: [{ providerDeploymentId: deployment.id }]
});

let result = streamText({
  model: anthropic('claude-sonnet-4-20250514'),
  prompt:
    'Search the web for the latest news about AI agents and summarize the top 3 stories.',
  stopWhen: stepCountIs(10),
  tools: session.tools()
});

for await (let part of result.textStream) {
  process.stdout.write(part);
}

Install it with:

npm install metorial @metorial/ai-sdk @ai-sdk/anthropic ai

Python

import asyncio
import os

from metorial import Metorial
from metorial import metorial_pydantic_ai
from pydantic_ai import Agent

async def main():
  metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])

  deployment = metorial.provider_deployments.create(
    name="Metorial Search",
    provider_id="metorial-search",
  )

  session = await metorial.connect(
    adapter=metorial_pydantic_ai(),
    providers=[{"provider_deployment_id": deployment.id}],
  )

  agent = Agent(
    "anthropic:claude-sonnet-4-20250514",
    system_prompt="You are a helpful research assistant.",
    tools=session.tools(),
  )

  result = await agent.run(
    "Search the web for the latest news about AI agents and summarize the top 3 stories."
  )
  print(result.output)

asyncio.run(main())

Install it with:

pip install metorial pydantic-ai python-dotenv

OAuth Integration

When working with services that require user authentication, such as Slack, GitHub, Google Calendar, or SAP, Metorial provides setup sessions to handle the OAuth flow and then reuse the resulting auth config.

JavaScript / TypeScript

import { Metorial } from 'metorial';
import { metorialAiSdk } from '@metorial/ai-sdk';

let metorial = new Metorial({ apiKey: process.env.METORIAL_API_KEY! });

let setupSession = await metorial.providerDeployments.setupSessions.create({
  providerId: 'your-slack-provider-id',
  providerAuthMethodId: 'your-slack-auth-method-id'
});

console.log(`Authenticate here: ${setupSession.url}`);

let completed = await metorial.providerDeployments.setupSessions.waitForCompletion([
  setupSession
]);

let session = await metorial.connect({
  adapter: metorialAiSdk(),
  providers: [
    {
      providerDeploymentId: 'your-slack-deployment-id',
      providerAuthConfigId: completed[0]!.authConfig!.id
    }
  ]
});

// Pass session.tools() to your model SDK.

Python

import os

from metorial import Metorial
from metorial import metorial_pydantic_ai

metorial = Metorial(api_key=os.environ["METORIAL_API_KEY"])

setup_session = metorial.provider_deployments.setup_sessions.create(
  provider_id="your-slack-provider-id",
  provider_auth_method_id="oauth",
  redirect_url="https://yourapp.com/oauth/callback",
)

print(f"Authenticate here: {setup_session.url}")

completed = await metorial.wait_for_setup_session([setup_session])

session = await metorial.connect(
  adapter=metorial_pydantic_ai(),
  providers=[
    {
      "provider_deployment_id": "your-slack-deployment-id",
      "provider_auth_config_id": completed[0].auth_config.id,
    }
  ],
)
tools = session.tools()

OAuth Flow Explained

  1. Create a setup session: Call providerDeployments.setupSessions.create() in TypeScript or provider_deployments.setup_sessions.create() in Python.
  2. Send the URL: Show the setup session URL to users so they can authenticate in their browser.
  3. Wait for completion: Wait for the setup session to finish and return an auth config.
  4. Use the auth config: Pass the auth config ID when configuring providers.

Provider Configuration Examples

Use the same providers list to combine dashboard-managed deployments, pre-created auth configs, inline credentials, and reusable session templates:

let session = await metorial.connect({
  adapter: metorialAiSdk(),
  providers: [
    { providerDeploymentId: 'your-search-deployment-id' },
    {
      providerDeploymentId: 'your-slack-deployment-id',
      providerAuthConfigId: 'slack-auth-config-id'
    },
    {
      providerDeploymentId: 'your-github-deployment-id',
      providerAuthConfig: {
        providerAuthMethodId: 'github-auth-method-id',
        credentials: { access_token: 'ghp_...' }
      }
    },
    { sessionTemplateId: 'your-template-id' }
  ]
});
session = await metorial.connect(
  adapter=metorial_pydantic_ai(),
  providers=[
    {"provider_deployment_id": "your-search-deployment-id"},
    {
      "provider_deployment_id": "your-slack-deployment-id",
      "provider_auth_config_id": "slack-auth-config-id",
    },
    {
      "provider_deployment_id": "your-github-deployment-id",
      "provider_auth_config": {
        "provider_auth_method_id": "github-auth-method-id",
        "credentials": {"access_token": "ghp_..."},
      },
    },
    {"session_template_id": "your-template-id"},
  ],
)

Examples

Check out the SDK example directories for complete working examples:

TypeScript

Python

View source on GitHub