AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Poc Mcp Server

mcp-lucianoyamane-poc-mcp-server · by lucianoyamane

Este projeto é uma prova de conceito de um servidor MCP (Model Context Protocol) que integra com a API pública deckofcardsapi.com para criar, embaralhar e comprar cartas de baralhos.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add mcp-lucianoyamane-poc-mcp-server

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-lucianoyamane-poc-mcp-server)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
stale · 1y ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Poc Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

poc-mcp-server

Descrição

Este projeto é uma prova de conceito de um servidor MCP (Model Context Protocol) que integra com a API pública deckofcardsapi.com para criar, embaralhar, comprar cartas de baralhos, manipular pilhas e interagir via prompts. O projeto está modularizado para facilitar manutenção e extensões.


Observação sobre a abordagem manual (baixo nível) do MCP

> Nota: Este projeto utiliza a API de baixo nível do MCP SDK (Server e setRequestHandler) ao invés das abstrações de alto nível (McpServer, server.tool, etc). Isso foi necessário para garantir controle total sobre o registro de tools, resources, templates e prompts, além de compatibilidade com o Inspector e outros clients MCP. Essa abordagem é ideal para provas de conceito, debugging e cenários que exigem customização avançada. > > Para mais detalhes, consulte o arquivo [docs/plano-refatoracao.md](docs/plano-refatoracao.md).


Estrutura do Projeto

  • index.js: Ponto de entrada do servidor MCP. Registra as ferramentas (tools), resources dinâmicos e prompts.
  • handlers.js: Contém as funções (handlers) que implementam a lógica de cada ferramenta.
  • schemas.js: Define os schemas de validação dos parâmetros usando Zod.
  • toolsMeta.js: Centraliza os nomes e descrições das ferramentas.
  • .env: Arquivo de variáveis de ambiente (exemplo: URL base da API de baralhos).
  • test.js: Script de teste automatizado para validar as ferramentas.
  • client/: Client MCP CLI para interagir com o servidor.
  • docs/: Documentação e problemas conhecidos.

Instalação

  1. Clone o repositório:

``bash git clone cd poc-mcp-server-deck-of-cards ``

  1. Instale as dependências:

``bash npm install ``

  1. Crie um arquivo .env na raiz do projeto (opcional):

``env DECK_API_BASE_URL=https://deckofcardsapi.com/api/deck ``

Como rodar o servidor

npm start

O servidor MCP será iniciado e aguardará comandos via transporte STDIO.

Como rodar os testes

npm test

O script test.js irá:

  • Criar um baralho
  • Comprar cartas do baralho
  • Simular a lógica de prompt como uma tool

Como funciona

  • As ferramentas (tools), resources e prompts são registrados manualmente usando o modelo baixo nível do MCP Server.
  • Os handlers implementam a lógica de integração com a API deckofcardsapi.com.
  • Os schemas garantem a validação dos parâmetros recebidos.
  • O projeto utiliza dotenv para configuração flexível da URL base da API.

Tools disponíveis

  • criar_baralho: Cria um novo baralho de cartas.
  • embaralhar_baralho: Embaralha um baralho existente.
  • comprar_cartas: Compra cartas de um baralho.
  • adicionar_pilha: Adiciona cartas a uma pilha de um baralho (cria a pilha se não existir).
  • embaralhar_pilha: Embaralha uma pilha específica de um baralho.

Exemplo de uso da tool adicionar_pilha

{
  "deck_id": "c7ji4ar6dxti",
  "pile_name": "teste",
  "cards": "AS,2S"
}

Resources dinâmicos

O servidor expõe um resource dinâmico para listar as cartas de uma pilha específica de um baralho:

  • Template: deck://{deckId}/pile/{pileName}/list
  • Como usar:
  • Preencha os parâmetros deckId e pileName para montar a URI, por exemplo:
  • deck://c7ji4ar6dxti/pile/teste/list
  • Consulte esse resource pelo client MCP ou pelo inspector.

Prompts MCP

O servidor expõe prompts para padronizar interações e facilitar fluxos conversacionais com LLMs. Os prompts disponíveis são:

  • explicar-regras: Explica as regras de um jogo de cartas.
  • Argumentos: jogo (nome do jogo de cartas)
  • Exemplo: { "jogo": "pôquer" }
  • sugerir-jogada: Sugere a melhor jogada com base nas cartas informadas.
  • Argumentos: cartas (ex: "AS, KD, 10H, 9C")
  • Exemplo: { "cartas": "AS, KD, 10H, 9C" }
  • simular-partida: Simula uma partida de um jogo de cartas com N jogadores.
  • Argumentos: jogo, jogadores
  • Exemplo: { "jogo": "blackjack", "jogadores": 3 }
  • mensagem-personalizada: Gera uma mensagem de boas-vindas ou parabéns para um jogador.
  • Argumentos: nome, tipo (ex: "boas-vindas", "parabéns")
  • Exemplo: { "nome": "João", "tipo": "boas-vindas" }

Como testar prompts

  • No MCP Inspector, acesse a aba Prompts.
  • Escolha um prompt, preencha os argumentos e veja a mensagem gerada.
  • Você pode integrar prompts em fluxos de LLMs para padronizar perguntas e respostas.

Testando com o MCP Inspector

Você pode testar o servidor e suas capabilities com o MCP Inspector:

npx @modelcontextprotocol/inspector node index.js

Ou, se preferir, utilize o script já definido no package.json:

npm run inspector
  • Acesse a aba Tools para testar as ferramentas disponíveis.
  • Acesse a aba Resource Templates para testar o resource dinâmico, preenchendo os parâmetros necessários.
  • Acesse a aba Prompts para testar prompts e gerar mensagens customizadas.

Client MCP (CLI)

O projeto inclui um client MCP em Node.js na pasta client, que permite interagir com o servidor MCP via linha de comando, utilizando o modelo Claude (Anthropic) para processar linguagem natural e acionar ferramentas do servidor.

Instalação das dependências do client

cd client
npm install

Configuração

Crie um arquivo .env na pasta client com sua chave da API do Anthropic:

ANTHROPIC_API_KEY=sua-chave-aqui

Como executar o client

Com o servidor MCP rodando, execute o client passando o caminho do script do servidor MCP (por exemplo, ../index.js):

node index.js 

Exemplo:

node index.js ../index.js

Funcionamento

  • O client conecta ao servidor MCP via transporte STDIO.
  • Permite enviar queries em linguagem natural, que são processadas pelo Claude.
  • Para sair, digite quit no prompt.
  • Para listar as tools disponíveis, digite resources ou tools (dependendo do comando implementado).
  • Para consumir um resource dinâmico, digite:

`` resource deck:///pile//list ``

Exemplo de uso

$ node index.js ../index.js
MCP Client Started!
Type your queries, 'resources' to listar resources, or 'quit' to exit.

Query: Quero criar um baralho e comprar 5 cartas.
[resposta do modelo com o resultado das operações]

Query: resource deck://c7ji4ar6dxti/pile/teste/list
[resposta com as cartas da pilha 'teste']

> Obs: O client pode ser adaptado para outros modelos ou interfaces conforme necessário.

Observações sobre prompt

  • O suporte a prompts reais depende de um client MCP com interface humana (chat, web, etc).
  • No momento, a lógica de prompt está simulada como uma tool para facilitar testes automatizados.

Dependências principais

  • @modelcontextprotocol/sdk
  • dotenv
  • node-fetch
  • zod

Customização

  • Para adicionar novas ferramentas ou prompts, edite o handler correspondente no index.js.
  • Para mudar a URL da API, edite o arquivo .env.

Problemas conhecidos

Consulte a pasta docs/ para problemas conhecidos e dicas de solução.


Se tiver dúvidas ou quiser expandir o projeto, fique à vontade para contribuir!

Exemplo de uso: Simulando uma jogada de pôquer

Abaixo está um exemplo de prompt em linguagem natural para simular uma jogada de pôquer Texas Hold'em utilizando o servidor MCP:

> Eu gostaria de simular um jogo de pôquer Texas Hold'em com 4 jogadores, onde cada jogador recebe duas cartas e 5 cartas comunitárias são reveladas na mesa.

Esse prompt solicita ao servidor MCP que:

  • Crie um baralho novo
  • Embaralhe o baralho
  • Distribua 2 cartas para cada um dos 4 jogadores
  • Revele 5 cartas comunitárias na mesa (como no Texas Hold'em)

A resposta esperada será um objeto JSON contendo as cartas de cada jogador e as cartas da mesa, por exemplo:

{
  "jogadores": {
    "jogador_1": ["AS", "KD"],
    "jogador_2": ["10H", "9C"],
    "jogador_3": ["2D", "7S"],
    "jogador_4": ["JC", "5H"]
  },
  "mesa": ["3C", "8D", "QS", "4H", "6S"]
}

> Obs: Você pode adaptar o prompt em linguagem natural conforme desejar, mudando o número de jogadores ou o formato da partida.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.