Koskamo

Kürsüde MCP

A debate practice tool that provides motions, opponent briefs, Points of Information (POI) briefs, and judging rubrics in Turkish and English, allowing users to train debate skills within an AI assistant environment.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Kürsüde MCP logo, by KürsüdeVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Kürsüde
MCP endpoint (Streamable HTTP)
https://kursude.com/mcp
Vendor documentation

What you can do with it

  • Practice debate motions and arguments
  • Generate opponent briefs for training
  • Access judging rubrics for feedback
  • Train in Turkish or English

Source and maintenance

Vendor evidenceRegistry 0.4.0

Protocol and capabilities

Server
kursude 0.4.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Kürsüde: münazara antrenmanı. Kullanıcı İngilizce konuşuyorsa her araca dil=en ver (If the user speaks English, pass dil=en to every tool). Akış: onerge_listele ile önerge seçtir, format, rol ve seviyeyi sor (uzun maçta sure=hizli öner); isterse hazirlik_brifingi ile hazırlan; kullanıcının rolünden önce konuşan her konuşmacı için sırayla kullanici_rolu vererek rakip_brifingi al ve konuşmayı brifinge uyarak sen yaz (brifingi ve açıkları gösterme); POI için poi_brifingi al; kullanıcı konuşmasını yazınca juri_olcutu al ve değerlendirmeyi sen yap, sonunda rakiplerin açıklarını açıkla. Araçlar model çağırmaz; konuşmaları ve kararı sen üretirsin.

Tools

5 advertised

onerge_listele — Önerge listele
Advertised by the server during the last successful anonymous check.
Advertised read-only

Kürsüde'nin münazara önerge bankasını listeler (Türkçe 120, İngilizce Türkiye gündemi hariç). Kategori ve zorluğa göre süzülebilir. Dönen kimlik (ör. o011) diğer araçlarda önerge olarak kullanılabilir.

onerge_listele input schema
{
  "type": "object",
  "properties": {
    "dil": {
      "enum": [
        "tr",
        "en"
      ],
      "type": "string",
      "description": "Metin dili: tr (varsayılan) ya da en. Kullanıcı İngilizce konuşuyorsa en ver, maç boyunca değiştirme. Pass en if the user speaks English."
    },
    "adet": {
      "type": "integer",
      "maximum": 120,
      "minimum": 1,
      "description": "En fazla kaç önerge (varsayılan 20)"
    },
    "arama": {
      "type": "string",
      "description": "Önerge metninde geçen kelime (isteğe bağlı)"
    },
    "zorluk": {
      "type": "integer",
      "maximum": 3,
      "minimum": 1,
      "description": "1 kolay, 2 orta, 3 zor"
    },
    "kategori": {
      "enum": [
        "egitim",
        "teknoloji",
        "ekonomi",
        "uluslararasi",
        "etik",
        "kultur",
        "spor",
        "cevre",
        "toplum",
        "saglik",
        "hukuk",
        "turkiye"
      ],
      "type": "string",
      "description": "Kategori kimliği. egitim=Eğitim, teknoloji=Teknoloji, ekonomi=Ekonomi, uluslararasi=Uluslararası İlişkiler, etik=Felsefe ve Etik, kultur=Sanat, Kültür ve Medya, spor=Spor, cevre=Çevre ve İklim, toplum=Toplum ve Kimlik, saglik=Sağlık, hukuk=Hukuk ve Özgürlükler, turkiye=Türkiye Gündemi"
    },
    "rastgele": {
      "type": "boolean",
      "description": "true ise sonuçları karıştırır; \"bana önerge seç\" için adet=1 ile kullan."
    }
  },
  "additionalProperties": false
}
onerge_listele output schema
{
  "type": "object",
  "required": [
    "toplam",
    "onergeler"
  ],
  "properties": {
    "toplam": {
      "type": "integer"
    },
    "onergeler": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "metin",
          "kategori",
          "zorluk"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "tip": {
            "type": "string"
          },
          "bilgi": {
            "type": "string"
          },
          "metin": {
            "type": "string"
          },
          "zorluk": {
            "type": "integer"
          },
          "kategori": {
            "type": "string"
          }
        }
      }
    }
  }
}
onerge_listele annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
hazirlik_brifingi — Hazırlık brifingi
Advertised by the server during the last successful anonymous check.
Advertised read-only

Maç öncesi hazırlık için kuralları döndürür: tüm takımlara gizli vaka planı çıkarma ve kullanıcının takım arkadaşı olarak onunla hazırlanma. Model çağırmaz; planı ve arkadaş cevaplarını sen yazarsın. Kullanıcı hazırlanmak istemiyorsa atla.

hazirlik_brifingi input schema
{
  "type": "object",
  "required": [
    "onerge"
  ],
  "properties": {
    "dil": {
      "enum": [
        "tr",
        "en"
      ],
      "type": "string",
      "description": "Metin dili: tr (varsayılan) ya da en. Kullanıcı İngilizce konuşuyorsa en ver, maç boyunca değiştirme. Pass en if the user speaks English."
    },
    "rol": {
      "type": "string",
      "description": "Kullanıcının rolü (kimlik ya da ad). bp: AH1=Başbakan, AM1=Muhalefet Lideri, AH2=Başbakan Yardımcısı, AM2=Muhalefet Lider Yardımcısı, KH1=Hükümet Üyesi, KM1=Muhalefet Üyesi, KH2=Hükümet Kırbacı, KM2=Muhalefet Kırbacı | asya: H1=Başbakan, M1=Muhalefet Lideri, H2=Bakan, M2=Muhalefet Lider Yardımcısı, H3=Hükümet Kırbacı, M3=Muhalefet Kırbacı, MC=Muhalefet Cevap, HC=Hükümet Cevap | wsdc: O1=Önerme 1. Konuşmacı, K1=Karşı 1. Konuşmacı, O2=Önerme 2. Konuşmacı, K2=Karşı 2. Konuşmacı, O3=Önerme 3. Konuşmacı, K3=Karşı 3. Konuşmacı, KC=Karşı Cevap, OC=Önerme Cevap. Varsayılan ilk konuşma."
    },
    "format": {
      "enum": [
        "bp",
        "asya",
        "wsdc"
      ],
      "type": "string",
      "description": "bp (varsayılan), asya, wsdc"
    },
    "onerge": {
      "type": "string",
      "description": "Önerge kimliği (ör. o011) ya da önergenin metni"
    },
    "seviye": {
      "type": "string",
      "description": "1/Çaylak, 2/Kulüp (varsayılan), 3/Turnuva, 4/Şampiyon"
    }
  },
  "additionalProperties": false
}
hazirlik_brifingi output schema
{
  "type": "object",
  "required": [
    "onerge",
    "format",
    "rol",
    "takim",
    "hazirlikDk",
    "arkadaslar"
  ],
  "properties": {
    "rol": {
      "type": "string"
    },
    "takim": {
      "type": "string"
    },
    "format": {
      "type": "string"
    },
    "onerge": {
      "type": "string"
    },
    "arkadaslar": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hazirlikDk": {
      "type": "integer"
    }
  }
}
hazirlik_brifingi annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
rakip_brifingi — Konuşmacı brifingi
Advertised by the server during the last successful anonymous check.
Advertised read-only

Yapay zekâ konuşmacının (rakip ya da kullanıcının takım arkadaşı) konuşmasını SENİN yazman için Kürsüde brifingini döndürür: rol ve görev, kişilik, seviye, hedef uzunluk, konuşmacı kuralları ve (düşük seviyelerde) rastgele atanmış 0-2 somut açık. Model çağırmaz; konuşmayı brifinge uyarak sen yaz. Atanan açıkları kullanıcıya jüri değerlendirmesinden önce söyleme.

rakip_brifingi input schema
{
  "type": "object",
  "required": [
    "onerge"
  ],
  "properties": {
    "dil": {
      "enum": [
        "tr",
        "en"
      ],
      "type": "string",
      "description": "Metin dili: tr (varsayılan) ya da en. Kullanıcı İngilizce konuşuyorsa en ver, maç boyunca değiştirme. Pass en if the user speaks English."
    },
    "rol": {
      "type": "string",
      "description": "Yazılacak konuşmanın rolü (kimlik ya da ad). bp: AH1=Başbakan, AM1=Muhalefet Lideri, AH2=Başbakan Yardımcısı, AM2=Muhalefet Lider Yardımcısı, KH1=Hükümet Üyesi, KM1=Muhalefet Üyesi, KH2=Hükümet Kırbacı, KM2=Muhalefet Kırbacı | asya: H1=Başbakan, M1=Muhalefet Lideri, H2=Bakan, M2=Muhalefet Lider Yardımcısı, H3=Hükümet Kırbacı, M3=Muhalefet Kırbacı, MC=Muhalefet Cevap, HC=Hükümet Cevap | wsdc: O1=Önerme 1. Konuşmacı, K1=Karşı 1. Konuşmacı, O2=Önerme 2. Konuşmacı, K2=Karşı 2. Konuşmacı, O3=Önerme 3. Konuşmacı, K3=Karşı 3. Konuşmacı, KC=Karşı Cevap, OC=Önerme Cevap. Varsayılan ilk konuşma."
    },
    "sure": {
      "enum": [
        "tam",
        "yarim",
        "hizli"
      ],
      "type": "string",
      "description": "tam (varsayılan), yarim, hizli (≈3 dk)"
    },
    "format": {
      "enum": [
        "bp",
        "asya",
        "wsdc"
      ],
      "type": "string",
      "description": "bp (British Parlamenter, varsayılan), asya, wsdc"
    },
    "onerge": {
      "type": "string",
      "description": "Önerge kimliği (ör. o011) ya da önergenin metni"
    },
    "seviye": {
      "type": "string",
      "description": "1/Çaylak, 2/Kulüp (varsayılan), 3/Turnuva, 4/Şampiyon"
    },
    "kisilik": {
      "enum": [
        "sorgu",
        "duygu",
        "veri",
        "kurnaz",
        "klasik"
      ],
      "type": "string",
      "description": "sorgu=Sert Sorgulayıcı, duygu=Duygusal Hikâyeci, veri=Veri Kanlısı, kurnaz=Kurnaz Tanımcı, klasik=Dengeli Klasik. Verilmezse önerge ve takıma göre sabit seçilir."
    },
    "onceki_var": {
      "type": "boolean",
      "description": "Önceki konuşmalar gerçekten yapılmadıysa false ver (cevap verme açıkları atanmaz). Varsayılan: konuşma sırasından anlaşılır."
    },
    "kullanici_rolu": {
      "type": "string",
      "description": "Kullanıcının rolü. Verilirse aynı takımdaki konuşmacı takım arkadaşı olarak yazılır. Maç boyunca hep aynı değeri ver."
    }
  },
  "additionalProperties": false
}
rakip_brifingi output schema
{
  "type": "object",
  "required": [
    "onerge",
    "format",
    "rol",
    "takim",
    "seviye",
    "kisilik",
    "hedefKelime",
    "takimArkadasi"
  ],
  "properties": {
    "rol": {
      "type": "string"
    },
    "takim": {
      "type": "string"
    },
    "format": {
      "type": "string"
    },
    "onerge": {
      "type": "string"
    },
    "seviye": {
      "type": "string"
    },
    "kisilik": {
      "type": "string"
    },
    "hedefKelime": {
      "type": "integer"
    },
    "takimArkadasi": {
      "type": "boolean"
    }
  }
}
rakip_brifingi annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
poi_brifingi — POI brifingi
Advertised by the server during the last successful anonymous check.
Advertised read-only

Bilgi noktası (POI) kurallarını döndürür. yon=kullaniciya: rakip, kullanıcının yazmakta olduğu konuşmaya POI yöneltir. yon=kullanicidan: kullanıcı, senin yazdığın konuşmacıya POI yöneltti, konuşmacı kabul ya da reddeder. Model çağırmaz; POI'yi ya da cevabı sen yazarsın. Cevap konuşmalarında POI yoktur.

poi_brifingi input schema
{
  "type": "object",
  "required": [
    "yon",
    "onerge",
    "kullanici_rolu"
  ],
  "properties": {
    "dil": {
      "enum": [
        "tr",
        "en"
      ],
      "type": "string",
      "description": "Metin dili: tr (varsayılan) ya da en. Kullanıcı İngilizce konuşuyorsa en ver, maç boyunca değiştirme. Pass en if the user speaks English."
    },
    "rol": {
      "type": "string",
      "description": "Karşı taraftaki yapay zekâ konuşmacının rolü: kullaniciya için POI soran (varsayılan karşı tarafın ilk konuşmacısı), kullanicidan için kürsüdeki konuşmacı (zorunlu)."
    },
    "yon": {
      "enum": [
        "kullaniciya",
        "kullanicidan"
      ],
      "type": "string",
      "description": "kullaniciya: rakip soruyor. kullanicidan: kullanıcı soruyor."
    },
    "sure": {
      "enum": [
        "tam",
        "yarim",
        "hizli"
      ],
      "type": "string",
      "description": "tam (varsayılan), yarim, hizli (≈3 dk)"
    },
    "format": {
      "enum": [
        "bp",
        "asya",
        "wsdc"
      ],
      "type": "string",
      "description": "bp (varsayılan), asya, wsdc"
    },
    "onerge": {
      "type": "string",
      "description": "Önerge kimliği (ör. o011) ya da önergenin metni"
    },
    "kisilik": {
      "enum": [
        "sorgu",
        "duygu",
        "veri",
        "kurnaz",
        "klasik"
      ],
      "type": "string",
      "description": "Verilmezse önerge ve takıma göre sabit seçilir."
    },
    "kullanici_rolu": {
      "type": "string",
      "description": "Kullanıcının rolü (kimlik ya da ad). bp: AH1=Başbakan, AM1=Muhalefet Lideri, AH2=Başbakan Yardımcısı, AM2=Muhalefet Lider Yardımcısı, KH1=Hükümet Üyesi, KM1=Muhalefet Üyesi, KH2=Hükümet Kırbacı, KM2=Muhalefet Kırbacı | asya: H1=Başbakan, M1=Muhalefet Lideri, H2=Bakan, M2=Muhalefet Lider Yardımcısı, H3=Hükümet Kırbacı, M3=Muhalefet Kırbacı, MC=Muhalefet Cevap, HC=Hükümet Cevap | wsdc: O1=Önerme 1. Konuşmacı, K1=Karşı 1. Konuşmacı, O2=Önerme 2. Konuşmacı, K2=Karşı 2. Konuşmacı, O3=Önerme 3. Konuşmacı, K3=Karşı 3. Konuşmacı, KC=Karşı Cevap, OC=Önerme Cevap"
    }
  },
  "additionalProperties": false
}
poi_brifingi output schema
{
  "type": "object",
  "required": [
    "yon",
    "kurusteki",
    "soran",
    "korumaliSn"
  ],
  "properties": {
    "yon": {
      "type": "string"
    },
    "soran": {
      "type": "string"
    },
    "kurusteki": {
      "type": "string"
    },
    "korumaliSn": {
      "type": "integer"
    }
  }
}
poi_brifingi annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
juri_olcutu — Jüri ölçütü
Advertised by the server during the last successful anonymous check.
Advertised read-only

Kullanıcının münazara konuşmasını SENİN değerlendirmen için Kürsüde jürisinin ölçütünü ve rapor biçimini döndürür: puan aralığı, rolün görevi, biçim eşitliği ve kayırmama kuralları, ayrıca rakiplerin açıklarını yakalayıp yakalamadığının kontrolü. Model çağırmaz; değerlendirmeyi ölçüte uyarak sen yap.

juri_olcutu input schema
{
  "type": "object",
  "required": [
    "onerge"
  ],
  "properties": {
    "dil": {
      "enum": [
        "tr",
        "en"
      ],
      "type": "string",
      "description": "Metin dili: tr (varsayılan) ya da en. Kullanıcı İngilizce konuşuyorsa en ver, maç boyunca değiştirme. Pass en if the user speaks English."
    },
    "rol": {
      "type": "string",
      "description": "Kullanıcının konuşma rolü (kimlik ya da ad). bp: AH1=Başbakan, AM1=Muhalefet Lideri, AH2=Başbakan Yardımcısı, AM2=Muhalefet Lider Yardımcısı, KH1=Hükümet Üyesi, KM1=Muhalefet Üyesi, KH2=Hükümet Kırbacı, KM2=Muhalefet Kırbacı | asya: H1=Başbakan, M1=Muhalefet Lideri, H2=Bakan, M2=Muhalefet Lider Yardımcısı, H3=Hükümet Kırbacı, M3=Muhalefet Kırbacı, MC=Muhalefet Cevap, HC=Hükümet Cevap | wsdc: O1=Önerme 1. Konuşmacı, K1=Karşı 1. Konuşmacı, O2=Önerme 2. Konuşmacı, K2=Karşı 2. Konuşmacı, O3=Önerme 3. Konuşmacı, K3=Karşı 3. Konuşmacı, KC=Karşı Cevap, OC=Önerme Cevap. Varsayılan ilk konuşma."
    },
    "format": {
      "enum": [
        "bp",
        "asya",
        "wsdc"
      ],
      "type": "string",
      "description": "bp (varsayılan), asya, wsdc"
    },
    "onerge": {
      "type": "string",
      "description": "Önerge kimliği (ör. o011) ya da önergenin metni"
    }
  },
  "additionalProperties": false
}
juri_olcutu output schema
{
  "type": "object",
  "required": [
    "onerge",
    "format",
    "rol",
    "puanAraligi"
  ],
  "properties": {
    "rol": {
      "type": "string"
    },
    "format": {
      "type": "string"
    },
    "onerge": {
      "type": "string"
    },
    "puanAraligi": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "maxItems": 2,
      "minItems": 2
    }
  }
}
juri_olcutu annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

1 advertised

mac_baslat — Münazara maçı başlat

Advertised by the server during the last successful anonymous check.

Kürsüde akışıyla bir antrenman maçı başlatır: önerge, hazırlık, önce konuşanlar, senin konuşman, POI, jüri raporu.

onerge
Önerge kimliği ya da metni. Boşsa asistan önerge seçtirir.
format
bp, asya ya da wsdc (varsayılan bp)
rol
Senin rolün (kimlik ya da ad)
seviye
1/Çaylak, 2/Kulüp, 3/Turnuva, 4/Şampiyon (varsayılan 2)
dil
tr (varsayılan) ya da en

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
708 ms
95th percentile latency
708 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 708 ms · metadata changed · 5 tool(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http ku-rsu-de-mcp https://kursude.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add ku-rsu-de-mcp --url https://kursude.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable ku-rsu-de-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "ku-rsu-de-mcp": {
      "url": "https://kursude.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "ku-rsu-de-mcp": {
      "type": "streamableHttp",
      "url": "https://kursude.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start ku-rsu-de-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "ku-rsu-de-mcp": {
      "type": "http",
      "url": "https://kursude.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http ku-rsu-de-mcp https://kursude.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "ku-rsu-de-mcp": {
      "url": "https://kursude.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "ku-rsu-de-mcp": {
      "serverUrl": "https://kursude.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Kürsüde MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Kürsüde MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing