Book Store
БесплатноНе проверенEnables users to search and explore a bookstore catalog including books, authors, categories, stock, prices, and recommendations through natural language.
Описание
Enables users to search and explore a bookstore catalog including books, authors, categories, stock, prices, and recommendations through natural language.
README
PoC de um ChatGPT App construído sobre o Model Context Protocol (MCP). O projeto expõe um MCP Server com ferramentas voltadas a uma livraria, para que o ChatGPT possa consultar livros, autores, estoque, preços e, no futuro, uma base de conhecimento com RAG.
O objetivo desta base é manter a arquitetura simples: o servidor MCP expõe as tools, os services concentram a regra de negócio e os repositories acessam o Supabase.
Visão Geral
Usuário
│
▼
ChatGPT
│
▼
MCP Server (FastMCP)
│
├── Services
│ └── regra de negócio
│
└── Repositories
└── acesso ao Supabase
Princípios da arquitetura:
- As tools apenas validam entrada e delegam para services.
- Os services concentram a lógica de negócio.
- Os repositories são a única camada que conversa com o banco.
- A decisão de qual tool usar é responsabilidade do ChatGPT.
Status Atual
- As tools estruturadas do catálogo estão implementadas de ponta a ponta.
- O projeto já organiza o código em
app/core,app/models,app/services,app/repositorieseapp/mcp. - A tool
searchKnowledgerepresenta a futura camada de RAG e faz parte da visão da PoC, mas ainda está em evolução. - Autenticação, observabilidade completa e versionamento formal de schema são tratados como próximos passos, não como requisito desta etapa.
Estrutura Do Projeto
book-store-mcp/
├── app/
│ ├── core/ configuração, cliente Supabase, container e exceções
│ ├── mcp/ servidor FastMCP e definição das tools
│ ├── models/ modelos Pydantic de domínio, entrada e saída
│ ├── repositories/ acesso a dados via Supabase
│ ├── rag/ base para ingestão e busca semântica
│ └── services/ regra de negócio
├── supabase/
│ └── migrations/ schema, políticas RLS e seed data
├── tests/ testes de serviços e repositórios
├── pyproject.toml
└── README.md
Tecnologias
| Tecnologia | Uso |
|---|---|
| Python 3.13+ | Linguagem |
MCP Python SDK (FastMCP) |
Servidor MCP e transporte HTTP |
| Supabase (Postgres) | Persistência dos dados estruturados |
pgvector |
Base para a camada vetorial/RAG |
| Pytest | Testes |
uv |
Gerenciamento do ambiente e execução local |
Requisitos
- Python 3.13 ou superior
uv- Um projeto Supabase com URL e chave
anon/publishable
Configuração
# Instala dependências de desenvolvimento
uv sync --extra dev
# Cria o arquivo de ambiente
cp .env.example .env
Depois, preencha o .env com as variáveis do Supabase e com as configurações
do servidor MCP, se necessário.
Banco De Dados
As migrações ficam em supabase/migrations/:
| Migração | Conteúdo |
|---|---|
..._init_schema.sql |
tabelas, índices, restrições e extensões |
..._rls_policies.sql |
RLS habilitado e políticas públicas de leitura |
..._seed_data.sql |
dados iniciais de livros, autores, editoras, categorias, estoque e avaliações |
Você pode aplicar as migrações com o Supabase CLI:
supabase db push
Ou executar os scripts diretamente no editor SQL do Supabase, na ordem em que foram criados.
Como Executar
uv run book-store-mcp
# ou
uv run python -m app.mcp.server
Por padrão, o servidor sobe em http://127.0.0.1:8000 usando transporte HTTP
compatível com MCP. O comportamento pode ser ajustado por meio de variáveis de
ambiente como MCP_HOST, MCP_PORT e MCP_TRANSPORT.
Para inspecionar a aplicação com a ferramenta de desenvolvimento do MCP:
uv run mcp dev app/mcp/server.py
Tools
| Tool | Descrição |
|---|---|
searchBooks |
Busca livros por título ou palavra-chave. |
searchAuthors |
Busca autores por nome ou a partir do título de um livro. |
searchPublishers |
Busca ou lista editoras. |
searchCategories |
Busca ou lista categorias e gêneros. |
searchByISBN |
Localiza um livro pelo ISBN. |
getBookSynopsis |
Retorna a sinopse de um livro. |
getBookReviews |
Retorna avaliações e nota média de um livro. |
recommendBooks |
Recomenda livros por autor, categoria ou gênero. |
findSimilarBooks |
Encontra livros semelhantes a um título informado. |
checkStock |
Consulta disponibilidade e quantidade em estoque. |
getBookPrice |
Consulta o preço de um livro. |
getBestSellers |
Lista os livros mais vendidos. |
getNewReleases |
Lista os lançamentos mais recentes. |
searchKnowledge |
Consulta a base de conhecimento via RAG. |
As tools retornam um JSON estruturado em caso de sucesso e um objeto de erro previsível em caso de falha, por exemplo:
{"error": "BOOK_NOT_FOUND", "message": "..."}
Testes
uv run pytest
Os testes cobrem as camadas de service e repository com dependências falsas ou mockadas, sem exigir banco de dados ao rodar localmente.
Próximos Passos
- Evoluir a tool
searchKnowledgecom ingestão e busca semântica. - Adicionar avaliação automática das tools com golden set.
- Incluir observabilidade mínima por chamada de tool.
- Definir uma estratégia de autenticação quando o servidor sair do ambiente de desenvolvimento.
Установка Book Store
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/arlansantos/bookstore-mcpFAQ
Book Store MCP бесплатный?
Да, Book Store MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Book Store?
Нет, Book Store работает без API-ключей и переменных окружения.
Book Store — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Book Store в Claude Desktop, Claude Code или Cursor?
Открой Book Store на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Book Store with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
