haegermark/mcp-consultant-api
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- HovedendepunktGET /health- Health checkGET /docs- API dokumentasjon (Swagger)
Ports og URL-er
| Tjeneste | Port | URL |
|---|---|---|
| llm-verktøy-api | 4000 | http://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)
- Enkelt:
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
| ID | Navn | Ferdigheter | Belastning | Tilgjengelighet |
|---|---|---|---|---|
| 1 | Fredrik | python, fastapi, docker | 50% | 50% |
| 2 | Elias | AI, data-science, matlab, mysql, java, python | 40% | 60% |
| 3 | Daniel | AI, ML, fastapi, django, pandas, postgresql, python, java, sql, javascript | 80% | 20% |
| 4 | Erlend | AI, data-science, c++, python | 60% | 40% |
| 5 | Adrian | AI, data-science, python, golang, kubernetes, docker | 70% | 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?
| Aspekt | REST API | MCP |
|---|---|---|
| Kommunikasjon | HTTP | JSON-RPC over stdio |
| Schema | Manuell | Auto-generert |
| Discovery | Manuell | Innebygd |
| Sikkerhet | Token-basert | Process isolation |
| AI-integrasjon | Custom | Native 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