🚀 Go-Tapd-SDK について
Go-Tapd-SDKは、Tapd APIにアクセスするためのGoクライアントライブラリです。Tapdを利用するアプリケーションやWebhookハンドラーを開発するGo開発者向けで、現行版は不安定なため本番利用は推奨されていません。
主な機能
- 01GoからのTapd APIアクセス
- 02Basic Authentication APIサービス
- 03Personal Access Token APIサービス
- 04Webhookサーバーの例
活用シーン
- 01GoアプリケーションからTapd APIを呼び出す
- 02Basic AuthenticationによるAPIリクエスト認証
- 03Personal Access TokenによるAPIアクセス
- 04Tapd Webhookハンドラーの構築
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🚀 Go-Tapd-SDK
Go-Tapd-SDK は、Tapd API にアクセスするための Go クライアントライブラリです。
警告
現在もまだ安定版ではないため、本番環境での使用は推奨されません。
問題が発生した場合は、issue を送信してください。
🧰 コマンドラインツール
メモ
🧰 ターミナルや CI での使用をお考えですか?この SDK をベースに構築されたコマンドラインツール、姉妹プロジェクトの
go-tapd/cliをお試しください。⚙️ ローカルでの簡単な操作、シェルスクリプト、オートメーションには CLI をご利用ください。インストール方法と使用例については、 リポジトリをご覧ください。
📥 インストール
go get github.com/go-tapd/tapd
✨ 機能
features.md をご覧ください。
🔧 使用方法
API サービス
- Basic Authentication API サービスの使用例:
package main
import (
"context"
"log"
"github.com/go-tapd/tapd"
)
func main() {
client, err := tapd.NewClient("client_id", "client_secret")
if err != nil {
log.Fatal(err)
}
// example: get labels
labels, _, err := client.LabelService.GetLabels(context.Background(), &tapd.GetLabelsRequest{
WorkspaceID: new(123456),
})
if err != nil {
log.Fatal(err)
}
log.Printf("labels: %+v", labels)
}
- Personal Access Token(PAT)API サービスの使用例:
package main
import (
"context"
"log"
"github.com/go-tapd/tapd"
)
func main() {
client, err := tapd.NewPATClient("your_access_token")
if err != nil {
log.Fatal(err)
}
// example: get stories
stories, _, err := client.StoryService.GetStories(context.Background(), &tapd.GetStoriesRequest{
WorkspaceID: new(123456),
})
if err != nil {
log.Fatal(err)
}
log.Printf("stories: %+v", stories)
}
Webhook サーバーの例
package main
import (
"context"
"log"
"net/http"
"github.com/go-tapd/tapd/webhook"
)
type StoreUpdateListener struct{}
func (l *StoreUpdateListener) OnStoryUpdate(ctx context.Context, event *webhook.StoryUpdateEvent) error {
log.Printf("StoreUpdateListener: %+v", event)
return nil
}
func main() {
dispatcher := webhook.NewDispatcher(
webhook.WithRegisters(&StoreUpdateListener{}),
)
dispatcher.Registers(&StoreUpdateListener{})
srv := http.NewServeMux()
srv.HandleFunc("/webhook", func(w http.ResponseWriter, r *http.Request) {
log.Println("Received webhook request")
if err := dispatcher.DispatchRequest(r); err != nil {
log.Println(err)
}
w.Write([]byte("ok"))
})
http.ListenAndServe(":8080", srv)
}
📜 ライセンス
MIT License(MIT)。詳しくはライセンスファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。