Alfresco MCP Chat
Turns hundreds of Alfresco MCP REST endpoints into a small set of tools for a local LLM, enabling natural language interaction with Alfresco while keeping everything local and secure.
README
Alfresco MCP Chat (hyland-mcp-gen)
Status: early-stage proof-of-concept
Turns hundreds Alfresco MCP REST endpoints into a 20-50-tool control plane a local LLM can handle. Everything runs on a laptop: FastAPI server + FastMCP + Ollama (default model mistral). The key is a lightweight router that selects only the relevant tools for each user query.
1. Why it exists
- Shrink the API surface, so the LLM never sees the full MCP spec
- Stay local-first, no cloud calls, perfect for local development
- Be hackable: flat repo, single-file entry points, Make targets
2. Quick start
git clone https://github.com/your-org/hyland-mcp-gen.git
cd hyland-mcp-gen
make venv # python -m venv .venv && pip install -U pip uv
make deps # uv pip sync requirements.lock
make server # FastAPI server on :3333
ollama run mistral # start the model in another terminal
make client # Rich CLI chat
Assumes
- Ollama 0.4+ with model
mistral - Port 3333 free
- Alfresco 25.x at
http://localhost:8080(override via.env)
3. Requirements
| Layer | Version | Why |
|---|---|---|
| Python | 3.10–3.13 | async + pattern-matching |
| make | any | convenience, optional |
| Ollama | 0.4+ | local LLM |
| FastMCP | pinned | agent framework |
| Rich | 13.x | streaming CLI |
| Alfresco MCP | 25.x | back-end |
| uv | installed by make venv |
fast resolver |
No extra system libraries.
4. Project layout
hyland-mcp-gen/
* Makefile # venv, lock, deps, server, client
* pyproject.toml # top-level deps
* requirements.lock # fully pinned set
* server.py # FastAPI + FastMCP
* chat_service.py # Rich CLI
* generate_mcp_tools.py # Swagger/OpenAPI > JSON tools
* alfresco_*_tools.json # sample tool sets
5. Everyday commands
| Target | Action |
|---|---|
make venv |
create .venv + install uv |
make lock |
regenerate requirements.lock |
make deps |
install exact lockfile versions |
make server |
run FastAPI server |
make client |
run Rich CLI |
make clean |
remove venv, lockfile, byte-code |
6. Configuration (.env or shell)
| Var | Default | Purpose |
|---|---|---|
MCP_URL |
http://localhost:3333/mcp |
client > server URL |
OLLAMA_MODEL |
mistral |
model name/tag |
PORT |
3333 |
server port override |
ALFRESCO_URL |
http://localhost:8080 |
MCP back-end |
ALFRESCO_USER |
admin |
username |
ALFRESCO_PASS |
admin |
password |
7. How it works
User > Router > 20 tool specs > LLM > HTTP call > Alfresco
7.1 Tool generation (generate_mcp_tools.py)
- Accepts Swagger 2 / OpenAPI 3 URL or file.
- Resolves
$ref, drops noise, adds examples. - Emits OpenAI-style JSON tools.
7.2 Router (RouterBuilder)
- Counts path segments, removes stop-words, promotes frequent nouns (
case,rendition, ...) to entities. - Clusters endpoints per entity; each cluster = agent.
- Scores agents against query terms; top agents donate tools (hard-capped < 20).
- Typical reduction: hundreds > 15-35 tools in < 50 ms.
7.3 Executor (FastMCP + httpx)
- Fills path/query/body params, keeps connections hot, streams JSON or text.
- Errors surface directly in CLI for fast debugging.
8. Regenerate tool sets
python generate_mcp_tools.py \
--input https://api-explorer.alfresco.com/api-explorer/definitions/alfresco-core.yaml \
--output alfresco_core_tools.json
9. Dependency workflow
- Edit
pyproject.toml. make lockto rewriterequirements.lock.make depsto install. CI/prod install from the lock file only.
Clever routing beats massive context: Alfresco MCP Chat keeps the model fast, local, and secure while still exposing the full power of Alfresco’s API surface
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.