Geliştiriciler

Teamso MCP Sunucusu

Claude, Cursor, Windsurf ya da başka bir MCP istemcisini Teamso hesabınıza bağlayın: izin isteyin, talepleri onaylayın, hedeflerinizi yönetin, bordro pusulanızı açın, kılavuzlarda arayın ve yetkinizin açtığı diğer tüm modüllerle çalışın.

MCP nedir?

Model Context Protocol (MCP), yapay zekâ asistanlarının dış sistemlerdeki araçları çağırmasını sağlayan açık bir standarttır. Teamso'nun hosted MCP sunucusu https://mcp.teamso.com/v1 adresinde, Streamable HTTP ve özel başlık destekleyen istemcilere hizmet verir.

Claude Desktop uzak bağlantılarda OAuth istediğinden yerel npm paketini (@teamso/teamso-mcp) kullanır. Her istek kişisel erişim token'ınızla ve sizin yetkilerinizle çalışır; sunucu token'ı saklamaz.

Bağlantılar

Kurulum

İstemcinizi seçin. Hepsi aynı token'ı kullanır: Teamso'da sol menünün en altındaki MCP erişimi sayfasını açıp token oluşturun ve örneklerdeki tms_pat_... yerine yazın.

Cursor

  1. Cursor'da Cmd+Shift+P → Open MCP settings komutunu çalıştırın.
  2. Sunucuyu ~/.cursor/mcp.json dosyasına ekleyin:
~/.cursor/mcp.json
{
  "mcpServers": {
    "teamso": {
      "url": "https://mcp.teamso.com/v1",
      "headers": {
        "Authorization": "Bearer tms_pat_..."
      }
    }
  }
}

Cursor'u yeniden başlatın; Teamso araçları MCP listesinde görünür.

Claude Code

Terminalde tek komut:

bash
claude mcp add --transport http teamso https://mcp.teamso.com/v1 --header "Authorization: Bearer tms_pat_..."

Kontrol için claude mcp get teamso çalıştırın ya da Claude Code içinde /mcp yazın.

bash
claude mcp get teamso

Claude Desktop

Claude Desktop'ta uzak özel bağlayıcılar (Custom Connectors) OAuth ister; Teamso token kullandığı için yerel paketi kullanın. claude_desktop_config.json dosyasına ekleyin ve Claude Desktop'u tamamen kapatıp açın:

claude_desktop_config.json
{
  "mcpServers": {
    "teamso": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@teamso/[email protected]"
      ],
      "env": {
        "TEAMSO_ACCESS_TOKEN": "tms_pat_..."
      }
    }
  }
}

Sürümü sabitleyin (@1.2.1): sabitlenmemiş npx önbellekteki eski sürümü çalıştırmaya devam eder. Adresi Connectors listesine eklemeyin.

Yerel paket doğrudan Teamso API'sine bağlanır ve İK araçlarının tamamını sunar; distribütör hesabının içerik araçları yalnız hosted sunucudadır.

Claude Desktop bağlantı sorunları

  • Yapılandırma hatası: girdi type, command, args ve env alanlarını içermeli.
  • Araçlar görünmüyor: Node.js 20 ya da üstü kurulu olmalı; Claude Desktop'u menüden tamamen kapatıp yeniden açın.
  • Çağrılar hemen düşüyor: paket sürümünü sabitleyin; npx önbellekteki eski sürümü kullanıyor olabilir.
  • Yapılandırmaya timeout alanı eklemeyin; istemci onu yok sayabilir.

Windsurf

Windsurf → Settings → MCP (~/.codeium/windsurf/mcp_config.json). Windsurf adresi serverUrl alanında bekler:

mcp_config.json
{
  "mcpServers": {
    "teamso": {
      "serverUrl": "https://mcp.teamso.com/v1",
      "headers": {
        "Authorization": "Bearer tms_pat_..."
      }
    }
  }
}

Diğer istemciler

Streamable HTTP destekleyen her istemci https://mcp.teamso.com/v1 adresine Authorization: Bearer tms_pat_... başlığıyla bağlanır. Yalnız stdio destekleyen istemciler hosted sunucuya mcp-remote ile ulaşır:

mcp.json
{
  "mcpServers": {
    "teamso": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.teamso.com/v1",
        "--header",
        "Authorization:Bearer ${TEAMSO_TOKEN}"
      ],
      "env": {
        "TEAMSO_TOKEN": "tms_pat_..."
      }
    }
  }
}

Yalnız OAuth ile bağlanabilen istemciler desteklenmez.

Kimlik doğrulama

Teamso MCP kişisel erişim token'ı (tms_pat_...) kullanır. Token'ı Teamso'da sol menünün en altındaki MCP erişimi sayfasında oluşturun; yalnız oluşturulduğu anda bir kez gösterilir.

HTTP
Authorization: Bearer tms_pat_...
  • Token sizin hesabınızla ve güncel yetkilerinizle çalışır: ekranda göremediğiniz veriyi MCP ile de göremezsiniz.
  • Her istek Authorization: Bearer tms_pat_... başlığını taşır; hosted sunucu token'ı saklamaz, isteği Teamso API'sine iletir.
  • Geçerlilik 30 gün, 90 gün, 1 yıl ya da süresizdir ve bir kullanıcının en fazla 10 etkin token'ı olabilir; token'ı aynı sayfadan istediğiniz an iptal edebilirsiniz.
  • Şifre, oturum ve giriş kanalı (telefon, e-posta) işlemleri, token yönetimi, entegrasyon anahtarları ve SGK şifreleri, şirket güvenlik ayarları, destek erişimi, şirket silme ve webhook değişiklikleri token'la yapılamaz (403 ACCESS_DENIED).
  • Şirketinizde IP kısıtlaması varsa token'la gelen istekler de bu kurala tabidir; hosted sunucu gerçek istemci IP'nizi imzalayarak iletir.
  • Token'la yapılan yazmalar denetim kaydına MCP kaynağıyla düşer.
  • Kullanıcı pasife alınır ya da başka bir şirkete geçerse token çalışmaz.

Araçlar

Hosted sunucu ve npm paketi aynı 34 aracı sunar. Her araç tipli girdi ve çıktı şeması, structuredContent ve kısa bir metin yanıtı döndürür. Hangi aracı kullanabileceğiniz rolünüze ve yetkilerinize bağlıdır.

Yardım

Teamso kullanım kılavuzlarında arar. API'yi çağırmaz, herkese açık kılavuz paketini okur.

AraçNe yapar
search_help_articlesTeamso kılavuzlarında anahtar kelimeyle arar; modüle ve role göre süzer.
get_help_articleBir kılavuzu adımlarıyla birlikte tam metin döndürür.
list_help_modulesKılavuzu olan modülleri, her modülün makale başlıkları ve kimlikleriyle listeler.

Hesap

Token sahibini ve yetkilerini döndürür.

AraçNe yapar
get_meAdınız, e-postanız, şirketiniz, rolleriniz, yetki kodlarınız, yöneticiniz, departman ve pozisyonunuz.

İzin

İzin talebi oluşturmak ve iptal etmek telefonunuza gelen SMS koduyla onaylanır: kod 3 dakika geçerlidir ve dijital kredi harcar.

AraçNe yapar
list_leave_typesTalep edebileceğiniz izin türleri ve her birinde kalan hakkınız.
get_my_leave_balanceİzin bakiyenizin özeti: tür bazında kalan gün.
calculate_leave_daysTarih aralığının kaç iş günü tuttuğunu ve işe dönüş tarihini hesaplar; çalışma takviminiz ve resmi tatiller dikkate alınır.
request_leave_otpTelefonunuza onay kodu gönderir (3 dakika geçerli, SMS kredisi harcar).
create_leave_requestSMS kodunu doğrular, günleri yeniden hesaplar ve talebi onay akışına gönderir.
list_my_leavesKendi izin talepleriniz; tarihe ve duruma göre süzülebilir.
cancel_leave_requestSMS koduyla onaylanan bir izin talebini siler; izin silme yetkisi gerekir.

Onaylar

Onay sırası sizde olan izin talepleri.

AraçNe yapar
list_pending_approvalsOnayınızı bekleyen izin talepleri.
approve_or_reject_leaveTalebi onaylar ya da reddeder; önce onay sırasının sizde olduğunu denetler. Reddetmek gerekçe ister.

Çalışanlar

Yalnız görme yetkiniz olan çalışanlar.

AraçNe yapar
search_employeesAktif çalışanları ad ya da e-postayla arar (Türkçe karakter duyarsız). Şirket rehberini görme yetkiniz yoksa sorumlu olduğunuz çalışanlarda arar.
get_employee_profileÇalışanın iş profili: şube, departman, pozisyon, yönetici, çalışma yeri ve iletişim (telefonu görme yetkiniz yoksa maskelenir).

Performans

Hedefler döneme adıyla (list_performance_periods'taki title) bağlanır; hedef araçlarından önce dönemleri listeleyin.

AraçNe yapar
list_performance_periodsPerformans dönemleri, hedef giriş tarihleri ve değerlendirme skalası.
list_my_goalsDönemdeki hedefleriniz ve her birinde yapabileceğiniz işlemler.
list_team_goalsYönettiğiniz ya da hedef atadığınız çalışanların hedefleri (taslaklar hariç) ve her birinde verebileceğiniz onaylar.
create_user_goalKendinize ya da size doğrudan bağlı bir çalışana taslak hedef ekler (performans yöneticisi herkese ekleyebilir).
send_goals_to_approvalTaslak (PENDING) hedeflerinizi yöneticinizin onayına gönderir.
approve_goalOnay bekleyen bir hedefi onaylar.
revise_and_approve_goalHedefi düzelterek (ad, açıklama, ağırlık, hedef değer) onaylar.
update_goal_actual_valueDeğerlendirmedeki hedefe gerçekleşen değerinizi girer.
update_manager_actual_valueÇalışanın doğrudan yöneticisi ya da yetkili yönetici olarak hedefin gerçekleşen değerini girer.
approve_goal_evaluationÇalışanın dönem değerlendirmesini sizin onay adımınızda onaylar; son adımda Teamso sonuç puanını hesaplar.

İletişim

Size görünen duyurular.

AraçNe yapar
list_announcementsSize görünen şirket ve servis duyuruları, en yenisi önce.

Bordro

Yalnız kendi bordro pusulalarınız.

AraçNe yapar
list_my_payslipsE-bordro pusulalarınız ve durumları; aya ya da yıla göre süzülebilir.
get_payslip_pdfBordro pusulasının PDF'ini gömülü kaynak olarak döndürür.

Tüm modüller

Teamso'nun geri kalanı (masraf, talep, fazla mesai, puantaj, bordro, işe alım, demirbaş, ayarlar...) genel API araçlarıyla. Yalnız sizin yetkinizin açtığı uçlar listelenir ve çağrılır; okuma araçları veri değiştiremez, yazma araçları önce önizleme gösterir.

AraçNe yapar
find_api_endpointsYetkinizin açtığı Teamso API uçlarında anahtar kelimeyle (Türkçe ya da İngilizce), modüle, HTTP yöntemine ya da etkiye (okuma, yazma, silme) göre arar. Her sonuçta uç kimliği, özet, etki ve SMS kodu ya da dosya bilgisi vardır.
list_api_modulesKullanabildiğiniz modülleri ve her modülde size açık uç sayısını listeler.
describe_api_endpointBir ucun parametrelerini, gövde şemasını, yanıt türünü, SMS kodu gerekip gerekmediğini ve hazır bir örnek çağrıyı gösterir.
call_api_readYalnız okuma uçlarını çalıştırır ve veriyi döndürür. İstek salt okunur işaretlenir; Teamso veri değiştirecek her isteği reddeder. Büyük listeler kısaltılır, dosyalar (PDF, Excel, CSV, görsel) 8 MB'a kadar gömülü dosya olarak gelir.
call_api_writeKayıt ekler, değiştirir ya da siler. confirm olmadan hiçbir şey göndermez, isteğin önizlemesini ve şema kontrolünü döndürür; ancak siz onayladıktan sonra confirm=true ile çalışır. SMS kodu isteyen işlemlerde otp_code alır, dosyaları base64 olarak yükler (toplam 10 MB).
request_sms_codeSMS kodu isteyen bir işlemi onayladıktan sonra telefonunuza 6 haneli doğrulama kodu gönderir (3 dakika geçerli, SMS kredisi harcar).

Distribütör hesabı hosted sunucuda ayrıca Landing CMS içerik araçlarını (landing sayfaları, kullanıcı hikayeleri, e-kitaplar, webinarlar, referanslar) görür; bu araçlar yalnız distribütör hesabına açıktır. Hosted sunucu kılavuzları ayrıca MCP kaynağı (teamso://how-to/...) olarak da sunar.

Hazır prompt'lar

Sunucu araçların yanında MCP prompt'ları da yayımlar (prompts/list, prompts/get); istemciniz bunları eğik çizgi komutu ya da prompt seçici olarak gösterir. Prompt yalnız asistanı araçlar üzerinden yönlendirir: her yazma işlemi yine onayınızı, izin talebi de SMS kodunu ister.

PromptArgümanlarNe yapar
request_leave
start (isteğe bağlı)İznin ilk günü: yyyy-MM-dd ya da “yarın” gibi bir ifade (Türkiye saatine göre).
end (isteğe bağlı)İznin son günü (yyyy-MM-dd); boşsa başlangıçla aynı gün.
leave_type (isteğe bağlı)İzin türünün adı, ör. “Yıllık İzin”; boşsa yıllık izin.
note (isteğe bağlı)Onaylayana not.
Oturum açan kullanıcı için izin talebi oluşturur: izin türünü seçer, iş günlerini ve kalan bakiyeyi gösterir, onayınızı alır ve talebi SMS koduyla gönderir. Eksik tarihleri sorar.
review_pending_approvalsArgüman almaz.
Onayınızı bekleyen izin taleplerini tablo olarak listeler ve her biri için onay mı ret mi istediğinizi sorar; kararı hiçbir zaman sizin yerinize vermez. Ret için gerekçe ister.

Distribütör hesabı hosted sunucuda ayrıca Landing CMS içerik prompt'larını (seo_landing_page, translate_marketing_content) görür; hosted sunucu bunları Teamso API'sinden alır.

Tüm modüller

Bu sayfadaki hazır araçlar en sık işler içindir. Geri kalan her şey için (masraf, talep, fazla mesai, PDKS, puantaj, vardiya, işe alım, işe alışma, demirbaş, belge onayı, anket, raporlar, şirket ayarları...) asistan genel API araçlarını kullanır. Araçlar Teamso API'sinin size özel uç kataloğunu okur: yalnız sizin yetkinizin açtığı uçlar listelenir ve çağrılabilir. Örneğin izin ekleme yetkiniz yoksa asistan da MCP üzerinden izin ekleyemez.

Nasıl ilerler?

  1. find_api_endpoints ya da list_api_modules ile uygun ucu bulur.
  2. describe_api_endpoint ile parametreleri, gövde şemasını ve SMS kodu gerekip gerekmediğini öğrenir.
  3. Okumalar için call_api_read: sonucu doğrudan döndürür.
  4. Değişiklikler için call_api_write: önce önizleme gösterir, ancak siz onaylayınca confirm: true ile çalıştırır.

Arama, uç kimliklerini (YÖNTEM /yol) ve her ucun etkisini döndürür:

tools/call · İstek
{
  "name": "find_api_endpoints",
  "arguments": {
    "query": "masraf",
    "side_effect": "read"
  }
}
Yanıt
{
  "structuredContent": {
    "query": "masraf",
    "sideEffect": "read",
    "page": 1,
    "size": 20,
    "total": 2,
    "totalPages": 1,
    "endpoints": [
      {
        "id": "GET /expense-form/{id}",
        "module": "EXPENSE",
        "summary": "Masraf formu ayrıntısı",
        "sideEffect": "read",
        "smsCodeRequired": "never",
        "fileResponse": false
      },
      {
        "id": "GET /expense-form/listPagination",
        "module": "EXPENSE",
        "summary": "Masraf formları (sayfalı)",
        "sideEffect": "read",
        "smsCodeRequired": "never",
        "fileResponse": false
      }
    ]
  }
}

Okuma, kimliği ve yol değerleriyle yapılır. İstek X-Teamso-Mcp-Intent: read başlığıyla gider; Teamso veri değiştirecek bir isteği bu başlıkla reddeder (403).

tools/call · İstek
{
  "name": "call_api_read",
  "arguments": {
    "id": "GET /expense-form/{id}",
    "path_params": {
      "id": "8f1c…"
    }
  }
}

Yazma araçları önce önizleme döndürür: gönderilecek isteği, şema kontrolünün sonucunu, silme ve SMS uyarılarını ve tek satırlık bir özeti. Bu aşamada Teamso'ya hiçbir şey gönderilmez; şemaya uymayan bir istek confirm: true ile de gönderilmez.

tools/call · İstek
{
  "name": "call_api_write",
  "arguments": {
    "id": "POST /demand",
    "body": {
      "demandTypeId": "3b7e…",
      "message": "Yeni monitör talebi"
    }
  }
}
Yanıt
{
  "structuredContent": {
    "mode": "preview",
    "endpoint": {
      "id": "POST /demand",
      "module": "DEMAND",
      "sideEffect": "write",
      "smsCodeRequired": "never"
    },
    "request": {
      "method": "POST",
      "path": "/demand"
    },
    "summary": "Changes data: POST /demand — Create a request",
    "validation": {
      "checked": true,
      "valid": true,
      "errors": []
    },
    "nextAction": {
      "tool": "call_api_write",
      "arguments": {
        "id": "POST /demand",
        "body": {
          "demandTypeId": "3b7e…",
          "message": "Yeni monitör talebi"
        },
        "confirm": true
      },
      "reason": "Only after the user explicitly confirms this preview."
    }
  },
  "content": [
    {
      "type": "text",
      "text": "## Preview — nothing has been sent\n\n**Changes data: POST /demand — Create a request**\n…"
    }
  ]
}

Siz onayladıktan sonra asistan aynı çağrıyı confirm: true ile tekrarlar. SMS kodu isteyen işlemlerde önce request_sms_code ile kod gönderir, kodu size sorar ve otp_code olarak ekler:

tools/call · İstek
{
  "name": "call_api_write",
  "arguments": {
    "id": "POST /expense-form/{expenseFormId}/finalize",
    "path_params": {
      "expenseFormId": "8f1c…"
    },
    "confirm": true,
    "otp_code": "123456"
  }
}

Örnek yanıt; alanlar araca göre değişir.

Güvenlik kuralları

  • Yalnız katalogdaki uç kimlikleri çağrılır; serbest adres yoktur. Giriş, token, şifre ve güvenlik ayarı uçları kimseye listelenmez.
  • Her istek token sahibinin Teamso yetkileriyle çalışır; ekranda yapamadığınız işlemi asistan da yapamaz. Yetkisiz bir istek API'de 403 ile reddedilir.
  • Değişiklikler önizleme ve açık onay olmadan çalışmaz; silme işlemleri önizlemede ayrıca uyarılır.
  • SMS kodu isteyen işlemler (ör. masraf formunu kesinleştirme) uygulamadaki gibi telefonunuza gelen kodla onaylanır.
  • Dosya yanıtları 8 MB'a kadar gömülü dosya olarak gelir; yüklemeler base64 olarak, en çok 10 dosya ve toplam 10 MB.
  • 40.000 karakteri aşan sonuçlar sığan kayıtlara kısaltılır ve truncated: true ile işaretlenir; hiçbir şey sessizce kesilmez.

Araç gruplarını seçme

Asistanınız daha az araç görsün istiyorsanız sunucu adresine ?toolsets= ekleyin (ya da X-Teamso-Toolsets başlığını gönderin). Yerel pakette aynı seçim TEAMSO_TOOLSETS ortam değişkeniyle yapılır. Varsayılan tüm araçlardır; bilinmeyen bir grup adı hata verir.

bash
claude mcp add --transport http teamso https://mcp.teamso.com/v1?toolsets=core,leave,api --header "Authorization: Bearer tms_pat_..."

Gruplar: core, help, leave, approvals, employees, performance, communication, payroll, api

İstek ve yanıt sözleşmesi

Araçlar MCP tools/call ile çağrılır. Girdi JSON Schema 2020-12 ile doğrulanır; başarılı yanıt structuredContent (zincirleme için tipli veri) ve content (yalnız metin gösteren istemciler için kısa özet) içerir.

tools/call · İstek
{
  "name": "calculate_leave_days",
  "arguments": {
    "leave_type_id": "6f1c…",
    "start": "2026-11-02",
    "end": "2026-11-04"
  }
}

Başka bir araçla devam etmek gerekiyorsa yanıt nextAction taşır: çağrılacak araç, argümanları ve nedeni. İzin akışı buna örnektir: calculate_leave_days → request_leave_otp → create_leave_request.

Yanıt
{
  "structuredContent": {
    "request": {
      "leaveTypeId": "6f1c…",
      "leaveTypeName": "Yıllık İzin",
      "start": "2026-11-02 09:00",
      "end": "2026-11-04 18:00",
      "workingDays": 3,
      "returnToWorkDate": "2026-11-05 09:00"
    },
    "remainingDays": 14,
    "remainingAfterRequest": 11,
    "canRequest": true,
    "problems": [],
    "nextAction": {
      "tool": "request_leave_otp",
      "arguments": {},
      "reason": "Creating the request needs an SMS code. After the user confirms these days, send the code, then call create_leave_request with the same leave_type_id, start, end and the otp_code."
    }
  },
  "content": [
    {
      "type": "text",
      "text": "## Yıllık İzin: 3 days\n\n- **Dates:** …\n- **Back at work:** 2026-11-05 09:00\n…"
    }
  ]
}

Örnek yanıt; alanlar araca göre değişir.

Hatalar isError: true ve ne yapılacağını söyleyen bir metinle döner; metnin sonunda Teamso API'nin HTTP durumu ve message_code değeri (ör. CREDIT_INSUFFICIENT, ITEM_NOT_FOUND) yer alır.

Hata
{
  "isError": true,
  "content": [
    {
      "type": "text",
      "text": "Your company does not have enough digital (SMS) credit for this step. Ask your Teamso administrator to top up credits.\n\n_Teamso API: HTTP 200 · `CREDIT_INSUFFICIENT`_"
    }
  ]
}

Tarihler: izinde yyyy-MM-dd HH:mm Türkiye saati (yalnız tarih verilirse başlangıç vardiya başı, bitiş vardiya sonu; varsayılan 09:00 ve 18:00), hedeflerde ve süzgeçlerde yyyy-MM-dd, bordro döneminde yyyy-MM ya da yyyy.

get_payslip_pdf pusulayı application/pdf türünde gömülü bir kaynak (base64) olarak döndürür.

Örnekler

Asistanınıza doğal dille sorun; araçları kendisi sırayla çağırır.

İzin talebi

“Önümüzdeki pazartesiden çarşambaya yıllık izin almak istiyorum.”

list_leave_typescalculate_leave_daysrequest_leave_otpcreate_leave_request

Onay kuyruğu

“Onayımı bekleyen izinleri göster, Ayşe'nin talebini onayla.”

list_pending_approvalsapprove_or_reject_leave

Hedefler

“2026 Q4 dönemine yüzde 40 ağırlıklı bir satış hedefi ekle ve onaya gönder.”

list_performance_periodscreate_user_goalsend_goals_to_approval

Bordro pusulası

“Eylül bordromu aç.”

list_my_payslipsget_payslip_pdf

Yardım

“Fazla mesai talebi nasıl girilir?”

search_help_articlesget_help_article

Masraf özeti

“Bu ayki harcamalarımı ve bekleyen taleplerimi özetle.”

find_api_endpointsdescribe_api_endpointcall_api_read

Talep oluşturma

“Yeni bir monitör için talep oluştur.”

find_api_endpointsdescribe_api_endpointcall_api_write

Nasıl çalışır?

  1. Asistan aracı token'ınızla birlikte https://mcp.teamso.com/v1 adresine gönderir.
  2. Sunucu isteği sizin adınıza Teamso API'sine iletir; yetkileriniz ve şirket kurallarınız (IP kısıtlaması, onay akışları, SMS onayı) aynen uygulanır.
  3. Yanıt tipli veri ve kısa metin olarak asistana döner. Sunucu durumsuzdur: oturum ya da token saklanmaz.
  4. Teamso'daki yeni yetki ve kurallar araçlara da hemen yansır; ek kurulum gerekmez.

Araç referansı

Her aracın parametreleri. Zorunlu olmayanlar boş bırakılabilir.

search_help_articles

YardımOkuma

Teamso kılavuzlarında anahtar kelimeyle arar; modüle ve role göre süzer.

ParametreTürZorunluAçıklama
querystringEvetAranacak metin.
lang"tr" | "en"HayırKılavuz dili; varsayılan tr.
modulestringHayırModül kimliği (list_help_modules), ör. leave.
role"ADMIN" | "MANAGER" | "EMPLOYEE"HayırYalnız bu rol için yazılmış makaleler: ADMIN, MANAGER ya da EMPLOYEE.
limitintegerHayırEn fazla sonuç sayısı (1-20, varsayılan 5).

get_help_article

YardımOkuma

Bir kılavuzu adımlarıyla birlikte tam metin döndürür.

ParametreTürZorunluAçıklama
idstringEvetMakale kimliği, ör. performance.evaluation.
lang"tr" | "en"HayırKılavuz dili; varsayılan tr.

list_help_modules

YardımOkuma

Kılavuzu olan modülleri, her modülün makale başlıkları ve kimlikleriyle listeler.

ParametreTürZorunluAçıklama
lang"tr" | "en"HayırKılavuz dili; varsayılan tr.

get_me

HesapOkuma

Adınız, e-postanız, şirketiniz, rolleriniz, yetki kodlarınız, yöneticiniz, departman ve pozisyonunuz.

Parametre almaz.

list_leave_types

İzinOkuma

Talep edebileceğiniz izin türleri ve her birinde kalan hakkınız.

Parametre almaz.

get_my_leave_balance

İzinOkuma

İzin bakiyenizin özeti: tür bazında kalan gün.

Parametre almaz.

calculate_leave_days

İzinOkuma

Tarih aralığının kaç iş günü tuttuğunu ve işe dönüş tarihini hesaplar; çalışma takviminiz ve resmi tatiller dikkate alınır.

ParametreTürZorunluAçıklama
leave_type_idstringEvetİzin türü kimliği (list_leave_types).
startstringEvetBaşlangıç, Türkiye saati: yyyy-MM-dd (vardiya başı, varsayılan 09:00) ya da yyyy-MM-dd HH:mm.
endstringEvetBitiş, Türkiye saati: yyyy-MM-dd (vardiya sonu, varsayılan 18:00) ya da yyyy-MM-dd HH:mm.

request_leave_otp

İzinYazma

Telefonunuza onay kodu gönderir (3 dakika geçerli, SMS kredisi harcar).

Parametre almaz.

create_leave_request

İzinYazma

SMS kodunu doğrular, günleri yeniden hesaplar ve talebi onay akışına gönderir.

ParametreTürZorunluAçıklama
leave_type_idstringEvetİzin türü kimliği (list_leave_types).
startstringEvetBaşlangıç, Türkiye saati: yyyy-MM-dd (vardiya başı, varsayılan 09:00) ya da yyyy-MM-dd HH:mm.
endstringEvetBitiş, Türkiye saati: yyyy-MM-dd (vardiya sonu, varsayılan 18:00) ya da yyyy-MM-dd HH:mm.
descriptionstringHayırAçıklama; bazı izin türlerinde zorunludur.
otp_codestringEvetrequest_leave_otp ile gelen 6 haneli SMS kodu.

list_my_leaves

İzinOkuma

Kendi izin talepleriniz; tarihe ve duruma göre süzülebilir.

ParametreTürZorunluAçıklama
fromstringHayırBu tarihten itibaren (yyyy-MM-dd).
tostringHayırBu tarihe kadar (yyyy-MM-dd).
status"pending_approval" | "approved" | "rejected" | "awaiting_usage_approval" | "completed" | "awaiting_document"Hayırİzin durumuna göre süzer: onayda, onaylandı, reddedildi, kullanım onayında, tamamlandı, belge bekliyor.
limitintegerHayırEn fazla kayıt sayısı (1-100, varsayılan 20).

cancel_leave_request

İzinKalıcı değişiklik

SMS koduyla onaylanan bir izin talebini siler; izin silme yetkisi gerekir.

ParametreTürZorunluAçıklama
leave_idstringEvetİzin kimliği (list_my_leaves).
otp_codestringEvetrequest_leave_otp ile gelen 6 haneli SMS kodu.

list_pending_approvals

OnaylarOkuma

Onayınızı bekleyen izin talepleri.

Parametre almaz.

approve_or_reject_leave

OnaylarKalıcı değişiklik

Talebi onaylar ya da reddeder; önce onay sırasının sizde olduğunu denetler. Reddetmek gerekçe ister.

ParametreTürZorunluAçıklama
leave_idstringEvetİzin kimliği (list_pending_approvals).
approvebooleanEvettrue onaylar, false reddeder.
reasonstringHayırRet gerekçesi; reddederken zorunlu.

search_employees

ÇalışanlarOkuma

Aktif çalışanları ad ya da e-postayla arar (Türkçe karakter duyarsız). Şirket rehberini görme yetkiniz yoksa sorumlu olduğunuz çalışanlarda arar.

ParametreTürZorunluAçıklama
querystringEvetAd, soyad ya da e-posta (Türkçe karakter şart değil).
limitintegerHayırEn fazla sonuç sayısı (1-50, varsayılan 10).

get_employee_profile

ÇalışanlarOkuma

Çalışanın iş profili: şube, departman, pozisyon, yönetici, çalışma yeri ve iletişim (telefonu görme yetkiniz yoksa maskelenir).

ParametreTürZorunluAçıklama
user_idstringEvetÇalışan kimliği (search_employees).

list_performance_periods

PerformansOkuma

Performans dönemleri, hedef giriş tarihleri ve değerlendirme skalası.

Parametre almaz.

list_my_goals

PerformansOkuma

Dönemdeki hedefleriniz ve her birinde yapabileceğiniz işlemler.

ParametreTürZorunluAçıklama
periodstringEvetDönem adı; list_performance_periods'taki title ile birebir.

list_team_goals

PerformansOkuma

Yönettiğiniz ya da hedef atadığınız çalışanların hedefleri (taslaklar hariç) ve her birinde verebileceğiniz onaylar.

ParametreTürZorunluAçıklama
periodstringEvetDönem adı; list_performance_periods'taki title ile birebir.
status"PENDING" | "WAITING_APPROVAL" | "APPROVED" | "REVISED_AND_APPROVED" | "IN_PROGRESS" | "EVALUATING" | "EVALUATED" | "EVALUATION_WAITING_APPROVAL" | "EVALUATION_IN_APPROVAL" | "COMPLETED" | "NOT_INCLUDED"HayırHedef durumuna göre süzer, ör. WAITING_APPROVAL, EVALUATING.

create_user_goal

PerformansYazma

Kendinize ya da size doğrudan bağlı bir çalışana taslak hedef ekler (performans yöneticisi herkese ekleyebilir).

ParametreTürZorunluAçıklama
periodstringEvetDönem adı; list_performance_periods'taki title ile birebir.
namestringEvetHedef adı.
weightnumberHayırAğırlık (yüzde); OTHER dışındaki ölçütlerde zorunlu.
scale_criterion"POINTS" | "QUANTITY" | "DAYS" | "CURRENCY" | "PERCENTAGE" | "OTHER"EvetÖlçüt: puan, adet, gün, para, yüzde ya da diğer (OTHER: serbest metin hedef).
target_valuenumberHayırHedeflenen sayısal değer; OTHER dışındaki ölçütlerde zorunlu.
currencystringHayırCURRENCY ölçütünde para birimi, ör. TRY.
other_textstringHayırOTHER ölçütünde hedefin metni.
descriptionstringHayırAçıklama.
user_idstringHayırHedefin sahibi; boşsa kendiniz. Başka biri size doğrudan bağlı olmalı (performans yöneticisi herkese hedef girebilir); kimlik search_employees'tan.

send_goals_to_approval

PerformansYazma

Taslak (PENDING) hedeflerinizi yöneticinizin onayına gönderir.

ParametreTürZorunluAçıklama
goal_idsstring[]EvetOnaya gönderilecek taslak (PENDING) hedeflerinizin kimlikleri (list_my_goals).

approve_goal

PerformansYazma

Onay bekleyen bir hedefi onaylar.

ParametreTürZorunluAçıklama
goal_idstringEvetHedef kimliği (list_team_goals).

revise_and_approve_goal

PerformansKalıcı değişiklik

Hedefi düzelterek (ad, açıklama, ağırlık, hedef değer) onaylar.

ParametreTürZorunluAçıklama
goal_idstringEvetHedef kimliği (list_team_goals).
namestringHayırYeni ad.
descriptionstringHayırYeni açıklama.
weightnumberHayırYeni ağırlık.
target_valuenumberHayırYeni hedef değer.

update_goal_actual_value

PerformansKalıcı değişiklik

Değerlendirmedeki hedefe gerçekleşen değerinizi girer.

ParametreTürZorunluAçıklama
goal_idstringEvetHedef kimliği (list_my_goals).
actual_valuenumberHayırGerçekleşen sayısal değer.
actual_textstringHayırOTHER ölçütünde gerçekleşen metin.

update_manager_actual_value

PerformansKalıcı değişiklik

Çalışanın doğrudan yöneticisi ya da yetkili yönetici olarak hedefin gerçekleşen değerini girer.

ParametreTürZorunluAçıklama
goal_idstringEvetHedef kimliği (list_team_goals).
valuenumberHayırYöneticinin girdiği gerçekleşen değer.
textstringHayırOTHER ölçütünde metin.

approve_goal_evaluation

PerformansYazma

Çalışanın dönem değerlendirmesini sizin onay adımınızda onaylar; son adımda Teamso sonuç puanını hesaplar.

ParametreTürZorunluAçıklama
periodstringEvetDönem adı; list_performance_periods'taki title ile birebir.
user_idstringEvetDeğerlendirilen çalışanın kimliği (list_team_goals'taki hedef sahibinin userId'si).

list_announcements

İletişimOkuma

Size görünen şirket ve servis duyuruları, en yenisi önce.

ParametreTürZorunluAçıklama
limitintegerHayırEn fazla duyuru sayısı (1-50, varsayılan 10).

list_my_payslips

BordroOkuma

E-bordro pusulalarınız ve durumları; aya ya da yıla göre süzülebilir.

ParametreTürZorunluAçıklama
termstringHayırDönem: bir ay (yyyy-MM) ya da bütün yıl (yyyy).
limitintegerHayırEn fazla kayıt sayısı (1-50, varsayılan 12).

get_payslip_pdf

BordroOkuma

Bordro pusulasının PDF'ini gömülü kaynak olarak döndürür.

ParametreTürZorunluAçıklama
payslip_idstringEvetBordro kimliği (list_my_payslips).

find_api_endpoints

Tüm modüllerOkuma

Yetkinizin açtığı Teamso API uçlarında anahtar kelimeyle (Türkçe ya da İngilizce), modüle, HTTP yöntemine ya da etkiye (okuma, yazma, silme) göre arar. Her sonuçta uç kimliği, özet, etki ve SMS kodu ya da dosya bilgisi vardır.

ParametreTürZorunluAçıklama
querystringHayırAranacak 1-3 anahtar kelime, ör. masraf ya da expense form; her kelime eşleşmeli.
modulestringHayırlist_api_modules'taki modül kodu, ör. LEAVE, EXPENSE, PAY_SLIP.
method"GET" | "POST" | "PUT" | "PATCH" | "DELETE"HayırYalnız bu HTTP yöntemi.
side_effect"read" | "write" | "delete" | "read_with_writes"HayırYalnız bu etkideki uçlar; güvenli aramalar için read.
pageintegerHayırSayfa numarası, 1'den başlar.
sizeintegerHayırSayfa başına sonuç (1-50, varsayılan 20).
lang"tr" | "en"HayırModül adları ve özetlerin dili; varsayılan tr.

list_api_modules

Tüm modüllerOkuma

Kullanabildiğiniz modülleri ve her modülde size açık uç sayısını listeler.

ParametreTürZorunluAçıklama
lang"tr" | "en"HayırModül adları ve özetlerin dili; varsayılan tr.

describe_api_endpoint

Tüm modüllerOkuma

Bir ucun parametrelerini, gövde şemasını, yanıt türünü, SMS kodu gerekip gerekmediğini ve hazır bir örnek çağrıyı gösterir.

ParametreTürZorunluAçıklama
idstringEvetfind_api_endpoints'in döndürdüğü uç kimliği (YÖNTEM /yol), yol yer tutucularıyla birlikte.
lang"tr" | "en"HayırModül adları ve özetlerin dili; varsayılan tr.

call_api_read

Tüm modüllerOkuma

Yalnız okuma uçlarını çalıştırır ve veriyi döndürür. İstek salt okunur işaretlenir; Teamso veri değiştirecek her isteği reddeder. Büyük listeler kısaltılır, dosyalar (PDF, Excel, CSV, görsel) 8 MB'a kadar gömülü dosya olarak gelir.

ParametreTürZorunluAçıklama
idstringHayırOkunacak ucun kimliği (YÖNTEM /yol); ya da method ve path verin.
method"GET" | "POST" | "PUT" | "PATCH" | "DELETE"Hayırpath ile birlikte, id yerine.
pathstringHayırKatalogdaki yol kalıbı (yer tutucularıyla), method ile birlikte, id yerine.
path_paramsobjectHayırYoldaki yer tutucuların değerleri, ör. id.
queryobjectHayırSorgu parametreleri; dizi verilirse parametre tekrarlanır.
bodyobjectHayırYalnız POST ile yapılan okumalarda filtre gövdesi.
lang"tr" | "en"HayırModül adları ve özetlerin dili; varsayılan tr.

call_api_write

Tüm modüllerKalıcı değişiklik

Kayıt ekler, değiştirir ya da siler. confirm olmadan hiçbir şey göndermez, isteğin önizlemesini ve şema kontrolünü döndürür; ancak siz onayladıktan sonra confirm=true ile çalışır. SMS kodu isteyen işlemlerde otp_code alır, dosyaları base64 olarak yükler (toplam 10 MB).

ParametreTürZorunluAçıklama
idstringEvetÇalıştırılacak ucun kimliği (YÖNTEM /yol).
path_paramsobjectHayırYoldaki yer tutucuların değerleri.
queryobjectHayırSorgu parametreleri.
bodyobjectHayırUcun gövde şemasına uyan JSON; çok parçalı (multipart) uçlarda dosya dışı form alanları.
files{ field, filename, content_type, base64 }[]HayırÇok parçalı uçlar için dosyalar: alan adı, dosya adı, MIME türü ve base64 içerik (en çok 10 dosya, toplam 10 MB).
confirmbooleanHayırfalse (varsayılan): yalnız önizleme, hiçbir şey gönderilmez. true: çalıştırır; yalnız kullanıcı önizlemeyi açıkça onayladıktan sonra.
otp_codestringHayırSMS kodu isteyen uçlarda request_sms_code ile gelen kod (3 dakika geçerli).
lang"tr" | "en"HayırModül adları ve özetlerin dili; varsayılan tr.

request_sms_code

Tüm modüllerYazma

SMS kodu isteyen bir işlemi onayladıktan sonra telefonunuza 6 haneli doğrulama kodu gönderir (3 dakika geçerli, SMS kredisi harcar).

Parametre almaz.

Sorun giderme

401 Unauthorized
Token yanlış, süresi dolmuş ya da iptal edilmiş. MCP erişimi sayfasından yeni token oluşturun; başlık Bearer tms_pat_... biçiminde olmalı.
403 ACCESS_DENIED
Bu işlem için yetkiniz yok ya da işlem token'la yapılamıyor (şifre, güvenlik ayarları, token ve entegrasyon anahtarı yönetimi).
403 IP_NOT_ALLOWED
Şirketinizin IP kısıtlaması isteği reddetti. Yerel pakette bilgisayarınızın IP adresi izinli olmalı.
CREDIT_INSUFFICIENT
İzin oluşturma ve iptal SMS ile dijital kredi harcar; şirket yöneticinizden kredi yüklemesini isteyin.
OTP_NOT_DONE
SMS kodu doğrulanmadı ya da 3 dakikalık süre doldu. request_leave_otp ile yeni kod isteyin.
429 Too Many Requests
Hosted sunucu token başına dakikalık istek sınırı uygular; yanıttaki Retry-After süresi kadar bekleyip yeniden deneyin.
Uç bulunamıyor
find_api_endpoints bir işlemi bulamıyorsa ya da describe_api_endpoint "not found" diyorsa token sahibinin o işlem için yetkisi yoktur ya da uç MCP'ye kapalıdır (giriş, token, şifre). Yetki şirket yöneticinizden istenir; yeni yetki hemen yansır.
Araçlar görünmüyor
İstemciyi tamamen yeniden başlatın; yerel pakette Node.js 20+ ve sabit sürüm kullandığınızdan emin olun.

Sık sorulan sorular

Hangi verilere erişebilirim?

Teamso'da görebildiğiniz verilere. Token sizin yetkilerinizle çalışır; yönetici değilseniz başkasının iznini onaylayamaz, yalnız kendi bordronuzu görürsünüz.

Token'ım saklanıyor mu?

Hosted sunucu token'ı saklamaz ve günlüğe yazmaz; isteği iletir ve unutur. Teamso yalnız token'ın özetini (hash) tutar.

Dijital kredi harcar mı?

Yalnız SMS onayı isteyen işlemler harcar ve web uygulamasındakiyle aynı tutarı düşer: izin talebi oluşturma, talebin açıldığı her kişi için 1 dijital kredi; izin talebini iptal etme 2 dijital kredi kullanır (biri silmede, biri iptal belgesinin zaman damgasında). Okuma araçları ve kılavuz araçları kredi harcamaz.

Kendi sunucumda çalıştırabilir miyim?

Evet. Açık kaynak npm paketini yerelde ya da kendi sunucunuzda çalıştırabilirsiniz; ayrıntılar Self-hosted MCP kılavuzunda. Self-hosted MCP

Token'ı nasıl iptal ederim?

MCP erişimi sayfasında token satırındaki İptal et işlemiyle; o token'la gelen istekler hemen reddedilir.