mcp-consultant-api

haegermark/mcp-consultant-api

3.1

If you are the rightful owner of mcp-consultant-api and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The MCP Konsulent-Staffing solution is designed to efficiently find available consultants based on their skills and capacity, utilizing LLM-generated summaries in Norwegian.

MCP Konsulent-Staffing

En Model Context Protocol (MCP) løsning for å finne tilgjengelige konsulenter basert på ferdigheter og kapasitet, med LLM-genererte sammendrag på norsk.

Arkitektur

MCP Server (konsulent-api)

  • Funksjon: Eksponerer konsulent-data via MCP tool
  • Port: Subprocess via stdio (ingen HTTP port)
  • Tool: hent_konsulenter() - returnerer alle konsulenter som JSON

MCP Client + REST API (llm-verktøy-api)

  • Funksjon: Kobler til MCP server, filtrerer data, genererer LLM-sammendrag
  • Port: 4000
  • LLM: GPT-4o-mini via OpenRouter
  • Endpoints:
    • GET /tilgjengelige-konsulenter/sammendrag - Hovedendepunkt
    • GET /health - Health check
    • GET /docs - API dokumentasjon (Swagger)

Ports og URL-er

TjenestePortURL
llm-verktøy-api4000http://localhost:4000
konsulent-api (MCP)-Subprocess via stdio

Nøkkel URL-er:

  • API: http://localhost:4000/tilgjengelige-konsulenter/sammendrag
  • Docs: http://localhost:4000/docs
  • Health: http://localhost:4000/health

Installasjon

1. Klon repository

git clone https://github.com/haegermark/mcp-konsulent-staffing.git
cd mcp-konsulent-staffing

2. Opprett .env-fil

echo "OPENROUTER_API_KEY=din-api-nøkkel-her" > .env

3. Start med Docker

docker compose up --build -d

4. Verifiser

curl http://localhost:4000/health

Bruk

Query Parametere

  • min_tilgjengelighet_prosent (påkrevd): Integer 0-100
    • Tilgjengelighet = 100 - belastning_prosent
  • påkrevd_ferdighet (valgfri): String
    • Enkelt: "python"
    • Flere: "python,docker" (AND-logikk)

Eksempler

Finn konsulenter med minst 50% tilgjengelighet og Python:

curl "http://localhost:4000/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=50&påkrevd_ferdighet=python"

Flere ferdigheter (AND-logikk):

curl "http://localhost:4000/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=40&påkrevd_ferdighet=python,docker"

Kun tilgjengelighet:

curl "http://localhost:4000/tilgjengelige-konsulenter/sammendrag?min_tilgjengelighet_prosent=30"

Response eksempel:

{
  "sammendrag": "Det ble funnet 2 konsulenter som oppfyller kriteriene om minimum 50% tilgjengelighet og ferdigheten python. Konsulentene er Fredrik med 50% tilgjengelighet, og Elias med 60% tilgjengelighet."
}

Konsulentdata

IDNavnFerdigheterBelastningTilgjengelighet
1Fredrikpython, fastapi, docker50%50%
2EliasAI, data-science, matlab, mysql, java, python40%60%
3DanielAI, ML, fastapi, django, pandas, postgresql, python, java, sql, javascript80%20%
4ErlendAI, data-science, c++, python60%40%
5AdrianAI, data-science, python, golang, kubernetes, docker70%30%

Docker Commands

# Start
docker compose up

# Rebuild
docker compose up --build

# Stopp
docker compose down

# Logs
docker logs llm-verktoy-api --follow

# Status
docker ps

Prosjektstruktur

mcp-konsulent-staffing/
├── konsulent-api/           # MCP Server
│   ├── server.py           # FastMCP server
│   └── requirements.txt
├── llm-verktoy-api/        # MCP Client + REST API
│   ├── client.py           # FastAPI + LLM
│   └── requirements.txt
├── docker-compose.yml
├── .env
└── README.md

MCP Flow

User → HTTP GET (localhost:4000)
  ↓
FastAPI (client.py)
  ↓
MCP Client (stdio)
  ↓
MCP Server (subprocess: server.py)
  ↓
Data Filtering
  ↓
LLM (GPT-4o-mini via OpenRouter)
  ↓
JSON Response

Feilsøking

Port 4000 i bruk:

netstat -ano | findstr :4000
docker compose down

Container starter ikke:

docker logs llm-verktoy-api
cat .env  # Sjekk OPENROUTER_API_KEY

MCP connection timeout:

docker exec llm-verktoy-api ls -la /mcp-server/
docker logs llm-verktoy-api --tail 100

LLM returnerer ikke sammendrag:

docker exec llm-verktoy-api printenv | grep OPENROUTER
# Sjekk credit: https://openrouter.ai/credits

Teknisk Stack

  • Python 3.11
  • MCP - Model Context Protocol (Anthropic)
  • FastMCP - MCP server framework
  • FastAPI - REST API
  • OpenAI SDK - LLM integrasjon
  • GPT-4o-mini - Language model
  • Docker - Containerisering

Hvorfor MCP?

AspektREST APIMCP
KommunikasjonHTTPJSON-RPC over stdio
SchemaManuellAuto-generert
DiscoveryManuellInnebygd
SikkerhetToken-basertProcess isolation
AI-integrasjonCustomNative support

LLM Valg: GPT-4o-mini

Hvorfor GPT-4o-mini?

  • Utmerket norsk språkstøtte
  • Kostnadseffektiv ($0.15/$0.60 per M tokens)
  • Rask responstid (<2s)
  • OpenAI SDK integrasjon

Alternativer:

  • GPT-4 Turbo: Dyrere, bedre kvalitet
  • Claude 3.5 Sonnet: Dyrere, utmerket kvalitet
  • Claude 3 Haiku: Billigere, svakere tekstgenerering

Referanser