import { Tool } from '@modelcontextprotocol/sdk/types.js';
const tools: Tool[] = [
{
name: 'get_authenticated_user',
description: '認証されたユーザーの詳細情報を取得します',
inputSchema: {
type: 'object',
properties: {},
required: [],
},
},
{
name: 'get_user',
description: '指定されたユーザーの詳細情報を取得します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
},
required: ['userId'],
},
},
{
name: 'get_users',
description: 'ユーザー一覧を取得します',
inputSchema: {
type: 'object',
properties: {
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: [],
},
},
{
name: 'get_user_items',
description: '指定されたユーザーの記事一覧を取得します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['userId'],
},
},
{
name: 'get_user_stocks',
description: '指定されたユーザーのストック一覧を取得します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['userId'],
},
},
{
name: 'get_user_followers',
description: '指定されたユーザーのフォロワー一覧を取得します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['userId'],
},
},
{
name: 'get_user_followees',
description: '指定されたユーザーのフォロー一覧を取得します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['userId'],
},
},
{
name: 'get_items',
description: '記事一覧を取得します',
inputSchema: {
type: 'object',
properties: {
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
query: {
type: 'string',
description: '検索クエリ',
},
},
required: [],
},
},
{
name: 'get_item',
description: '指定された記事の詳細情報を取得します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'create_item',
description: '新しい記事を作成します',
inputSchema: {
type: 'object',
properties: {
title: {
type: 'string',
description: '記事のタイトル',
},
body: {
type: 'string',
description: '記事の本文(Markdown形式)',
},
tags: {
type: 'array',
description: 'タグの配列',
items: {
type: 'object',
properties: {
name: {
type: 'string',
description: 'タグ名',
},
versions: {
type: 'array',
description: 'タグのバージョン',
items: {
type: 'string',
},
},
},
required: ['name', 'versions'],
},
},
private: {
type: 'boolean',
description: '非公開記事かどうか',
default: false,
},
tweet: {
type: 'boolean',
description: 'Twitterに投稿するかどうか',
default: false,
},
},
required: ['title', 'body', 'tags'],
},
},
{
name: 'update_item',
description: '既存の記事を更新します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
title: {
type: 'string',
description: '記事のタイトル',
},
body: {
type: 'string',
description: '記事の本文(Markdown形式)',
},
tags: {
type: 'array',
description: 'タグの配列',
items: {
type: 'object',
properties: {
name: {
type: 'string',
description: 'タグ名',
},
versions: {
type: 'array',
description: 'タグのバージョン',
items: {
type: 'string',
},
},
},
required: ['name', 'versions'],
},
},
private: {
type: 'boolean',
description: '非公開記事かどうか',
default: false,
},
},
required: ['itemId', 'title', 'body', 'tags'],
},
},
{
name: 'delete_item',
description: '指定された記事を削除します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'stock_item',
description: '指定された記事をストックします',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'unstock_item',
description: '指定された記事のストックを解除します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'is_item_stocked',
description: '指定された記事がストックされているかどうかを確認します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'get_item_stockers',
description: '指定された記事をストックしたユーザー一覧を取得します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['itemId'],
},
},
{
name: 'get_tags',
description: 'タグ一覧を取得します',
inputSchema: {
type: 'object',
properties: {
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
sort: {
type: 'string',
description: 'ソート順(countまたはname)',
enum: ['count', 'name'],
default: 'count',
},
},
required: [],
},
},
{
name: 'get_tag',
description: '指定されたタグの詳細情報を取得します',
inputSchema: {
type: 'object',
properties: {
tagId: {
type: 'string',
description: 'タグID',
},
},
required: ['tagId'],
},
},
{
name: 'get_tag_items',
description: '指定されたタグの記事一覧を取得します',
inputSchema: {
type: 'object',
properties: {
tagId: {
type: 'string',
description: 'タグID',
},
page: {
type: 'number',
description: 'ページ番号(1-100)',
default: 1,
},
perPage: {
type: 'number',
description: '1ページあたりの件数(1-100)',
default: 20,
},
},
required: ['tagId'],
},
},
{
name: 'follow_tag',
description: '指定されたタグをフォローします',
inputSchema: {
type: 'object',
properties: {
tagId: {
type: 'string',
description: 'タグID',
},
},
required: ['tagId'],
},
},
{
name: 'unfollow_tag',
description: '指定されたタグのフォローを解除します',
inputSchema: {
type: 'object',
properties: {
tagId: {
type: 'string',
description: 'タグID',
},
},
required: ['tagId'],
},
},
{
name: 'is_tag_followed',
description: '指定されたタグをフォローしているかどうかを確認します',
inputSchema: {
type: 'object',
properties: {
tagId: {
type: 'string',
description: 'タグID',
},
},
required: ['tagId'],
},
},
{
name: 'follow_user',
description: '指定されたユーザーをフォローします',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
},
required: ['userId'],
},
},
{
name: 'unfollow_user',
description: '指定されたユーザーのフォローを解除します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
},
required: ['userId'],
},
},
{
name: 'is_user_followed',
description: '指定されたユーザーをフォローしているかどうかを確認します',
inputSchema: {
type: 'object',
properties: {
userId: {
type: 'string',
description: 'ユーザーID',
},
},
required: ['userId'],
},
},
{
name: 'get_item_comments',
description: '指定された記事のコメント一覧を取得します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
},
required: ['itemId'],
},
},
{
name: 'create_comment',
description: '指定された記事にコメントを作成します',
inputSchema: {
type: 'object',
properties: {
itemId: {
type: 'string',
description: '記事ID',
},
body: {
type: 'string',
description: 'コメントの本文(Markdown形式)',
},
},
required: ['itemId', 'body'],
},
},
{
name: 'update_comment',
description: '指定されたコメントを更新します',
inputSchema: {
type: 'object',
properties: {
commentId: {
type: 'string',
description: 'コメントID',
},
body: {
type: 'string',
description: 'コメントの本文(Markdown形式)',
},
},
required: ['commentId', 'body'],
},
},
{
name: 'delete_comment',
description: '指定されたコメントを削除します',
inputSchema: {
type: 'object',
properties: {
commentId: {
type: 'string',
description: 'コメントID',
},
},
required: ['commentId'],
},
},
{
name: 'get_comment',
description: '指定されたコメントの詳細情報を取得します',
inputSchema: {
type: 'object',
properties: {
commentId: {
type: 'string',
description: 'コメントID',
},
},
required: ['commentId'],
},
},
];
export { tools };