foral
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@foralPull the open sales orders from the internal CRM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Foral — the runner
Charters for software without public APIs. Foral turns the systems your team already logs into into typed, governed capabilities for your AI agents — served over MCP, with no public API required, no browser puppeteering, and no generated code that rots.
This package is the runner: the commodity client that runs on your infrastructure. It loads a contract, serves its read capabilities to your agent as MCP tools, and keeps writes human-approved. The discovery engine that proposes a contract is not in here — the runner is small and auditable on purpose.
Website: https://foral.dev
Docs: https://foral.dev/docs
Contact: founders@foral.dev
Install
# base — serve / verify / update (no browser)
pipx install foral # or: npm i -g @foral/cli
# to also sign in locally (foral login), add the browser extra, once:
pipx install 'foral[login]'
playwright install chromiumRelated MCP server: AgentsGate
Quickstart
# 1) the three things the runner needs — it is fail-closed and never guesses
export FORAL_TENANT=your-org # isolates your sessions & contracts
export SESSION_ENCRYPTION_KEY="$(foral keygen)" # encrypts the saved session — keep it safe
export CONTRATOS_DIR=~/foral/contracts # where your contract YAML lives
# put the contract you downloaded from the sandbox here, named after the system:
# ~/foral/contracts/acme.yaml → foral serve acme (lowercase)
# 2) sign in once (opens your system's login in a browser; the session stays on this
# machine, ~30 days) and serve it as an MCP server
foral login acme
foral serve acmePoint your agent at it
# Claude Code
claude mcp add foral -- foral serve acme// Cursor — ~/.cursor/mcp.json
{ "mcpServers": { "foral": { "command": "foral", "args": ["serve", "acme"] } } }# Codex — ~/.codex/config.toml
[mcp_servers.foral]
command = "foral"
args = ["serve", "acme"]Any MCP client works — your own app connects to the same server and calls the system's capabilities as typed tools.
Commands
Command | What it does |
| Serve the system's contract as an MCP server (stdio). |
| Sign in once; save the session locally, encrypted (~30 days). Needs |
| Adopt a new contract version — validated before it is applied (fail-closed). |
| Validate the contract and exit. |
| Print a fresh |
How it behaves
Reads run with no browser. Read capabilities call the system's own internal API using your saved session and return typed rows — in milliseconds, no Chromium.
Writes stay human-approved. Write capabilities are never served as MCP tools and never execute here: the runner returns the declared confirmation phrase instead. Approval happens in your app's harness, never silently.
The session never leaves your machine.
foral loginsaves an encrypted session locally; it is never sent to Foral. Your password is typed into your own system's form.Contracts stay alive. Every read carries a fingerprint of the system's shape. When the system changes, the next read raises an alarm before wrong data can flow — your cue to run
foral update.Fail-closed by default. An invalid contract does not load; a missing tenant is refused; a missing key is refused. Errors are explicit, never a silent, wrong success.
Environment
Variable | Required | Purpose |
| serve, login | Isolates your sessions and contracts. No default (fail-closed). |
| login, serve | Encrypts the saved session. Generate with |
| serve, update | Directory holding |
| optional | Where sessions are stored (default |
Development
pip install -e '.[test]'
pytestLicense
Apache-2.0 — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables secure enterprise AI agents to access internal tools like GitHub, Gmail, Calendar, file systems, databases, and knowledge bases through the Model Context Protocol, with built-in security, audit, and observability.

AgentsGateofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to securely call MCP tools with risk scoring, checkpoints, rollback, and approval workflows.17MIT
evav-gatewayofficial
AlicenseNot gradedqualityBmaintenanceGoverned MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.Apache 2.0- FlicenseNot gradedqualityCmaintenanceEnables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/foral-dev/foral'
If you have feedback or need assistance with the MCP directory API, please join our Discord server