floci-mcp

floci-mcp

Enables AI agents to deploy and manage simulated AWS resources (like EC2, S3, DynamoDB) on a local Floci instance through natural language.

Category
Visit Server

README

floci-mcp

MCP server that lets an AI agent deploy and manage AWS-shaped resources on a local Floci instance — "spin up an EC2 instance with these parameters," "create an S3 bucket and a DynamoDB table," and so on.

What it does

Floci emulates 76 AWS services on http://localhost:4566. floci-mcp exposes that endpoint to any MCP-compatible client as three tools:

  • aws_call(service, action, params) — call any AWS API operation (any service, any action) against Floci. This is the core tool: since it's a thin pass-through to the AWS API, it covers all 76 services without a hand-built tool per operation.
  • floci_status() — check whether Floci is reachable.
  • floci_inventory() — summarize what's currently deployed across S3, DynamoDB, Lambda, EC2, SQS, SNS, ECS, and RDS in one call.

Prerequisites

  • Python 3.10+
  • A running Floci instance — see the Floci README for floci start or Docker setup.

Install

From a clone (not yet published to PyPI):

git clone https://github.com/Awilliv/floci-mcp.git
cd floci-mcp
pip install -e .

Once published to PyPI:

pip install floci-mcp

Configuration

Environment variables, all optional:

Variable Default Purpose
FLOCI_ENDPOINT_URL http://localhost:4566 Floci's HTTP endpoint
AWS_DEFAULT_REGION us-east-1 Region passed to every boto3 client
AWS_ACCESS_KEY_ID test Credential; a 12-digit value selects a Floci account (multi-account isolation)
AWS_SECRET_ACCESS_KEY test Credential (any non-empty value works against Floci)

Usage examples

Once registered with an MCP client, ask the agent things like:

"Spin up an EC2 instance with a t3.micro instance type using ami-00000000"

"Create an S3 bucket called reports and a DynamoDB table called users with a partition key id"

The agent drives these through aws_call — it already knows AWS API parameter shapes, so no per-service tool needs to exist for it to work.

Registering with an MCP client

Claude Code

Setting AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY explicitly here (rather than relying on the launching shell's environment) avoids accidentally signing requests with real AWS credentials if you happen to have them exported elsewhere.

claude mcp add floci -- floci-mcp

Or add to .mcp.json:

{
  "mcpServers": {
    "floci": {
      "command": "floci-mcp",
      "env": {
        "FLOCI_ENDPOINT_URL": "http://localhost:4566",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "floci": {
      "command": "floci-mcp",
      "env": {
        "FLOCI_ENDPOINT_URL": "http://localhost:4566",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}

Open WebUI (via mcpo)

Open WebUI speaks OpenAPI/tool-calling, not MCP directly. Front floci-mcp with mcpo to expose it as an OpenAPI server:

pip install mcpo
mcpo --port 8000 -- floci-mcp

Then in Open WebUI, go to Settings → Tools → Add a Tool Server and add http://localhost:8000. mcpo passes environment variables through to the floci-mcp process it launches, so set FLOCI_ENDPOINT_URL etc. in the shell you run mcpo from before starting it.

Development

pip install -e ".[test]"
pytest

Integration tests in tests/test_integration.py require a running Floci instance and skip themselves automatically when one isn't reachable.

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured