Releases: zonuexe/techbook-mcp
Releases · zonuexe/techbook-mcp
Release list
v0.7.0
Added
- 全ツールに
readOnlyHint/openWorldHintアノテーションを付与し、クライアントがツールの性質(読み取り専用・外部サイトへのアクセスの有無)を判別できるようにした - 各ツールに
outputSchemaを定義し、tools/callの応答に構造化データ(structuredContent)を含めるようにした。従来通りのJSON文字列表現(content)も維持する - Agent Plugins 仕様(agent-plugins.org)準拠の
plugin.json/mcp.jsonを追加し、対応クライアントから本サーバーをプラグインとして検出・起動できるようにした
Changed
- MCP SDK を v1 (
@modelcontextprotocol/sdk) から v2 (@modelcontextprotocol/server) に移行した
Fixed
- 引数不備・未知のツール名のエラーを、実装依存の内部エラー(
-32603)ではなく JSON-RPC 仕様通りの Invalid params(-32602)で返すようにした
Security
- TypeScript を 7 系にアップデートし、推移的依存(cheerio 経由の undici)の既知の脆弱性を解消した(
npm audit0 件)
v0.6.0
v0.5.1
v0.5.0
Added
BookRecordにsubtitle(副題)・alternativeTitle(並列タイトル・別言語タイトル) を追加。openBD の ISBD 表記書名(本タイトル = 並列タイトル : 副題)を構造化し、" : "を副題、" = "を並列タイトルとして分離するresolve_book/resolve_booksのvalidationにisbnMatches(要求 ISBN と返却 ISBN の一致)を追加し、bookがある限り取得元(source)に依存せず常に付与するようにした。評価できない項目はnullで明示する(呼び出し側が統一的にパースできる)- openBD の発行日が月精度(
YYYYMM)の場合もpublishedAtをYYYY-MM-01形式で返すようにした
Changed
validation.editionDiffersは ISBN が一致しているとき常にfalseを返すようにした(ISBN で版が確定するため。書名表記の差はtitleExactで表す)resolve_book/resolve_booksの検索経路で返すbookから、トップレベルと重複していたmatchScoreを除去した(matchScoreはトップレベルのみ)- スクレイピング由来の改行・連続空白が書名に混入していたのを、出力時に単一スペースへ畳むようにした
Fixed
resolve_book/resolve_booksで、ISBN を指定したのに解決できず書名検索へフォールバックした際、要求と異なる版(別 ISBN)をconfidence: highのまま黙って返していた問題を修正。要求 ISBN と一致しない場合はconfidenceを下げ、validation.isbnMatches: falseとreasonで警告する- openBD 由来の著者が、生年つきの図書館見出し形式(
姓, 名, 1983-)のまま返ることがあった問題を修正(姓 名に整形し生年を除去)
Security
- 推移的依存(cheerio 経由の undici、
@modelcontextprotocol/sdk経由の hono)の既知の脆弱性を解消(npm audit0 件)
[0.3.1] - 2026-06-02
Fixed
- MCP サーバーがクライアントに申告する
versionが実際のパッケー
ジバージョンと一致せず0.1.0に固定されていた問題を修正(HTTPUser-Agentも同様に固定されていた。src/version.tsの単一定数を参照するよう一元化)
Full Changelog: v0.3.0...v0.3.1
[0.3.0] - 2026-06-02
Added
- CQ出版社 (
cq-publishing) アダプターを追加(電子書籍直販サイト Tech Village) - Pragmatic Bookshelf (
pragprog) アダプターを追加(海外・DRM-free) - Leanpub (
leanpub) アダプターを追加(海外・セルフ出版・DRM-free) - 海外出版社の価格に対応する
BookRecord.currency(ISO 4217、省略時は JPY)を追加 - 書籍の言語を表す
BookRecord.language(ISO 639-1、省略時はja)を追加 search_booksが各候補にクエリとの一致度matchScoreを付与し、ベストマッチ順にソートするよう改善search_booksのtitleが ISBN 形式かつauthor未指定のときget_book_by_isbn経路へ振り分け(ISBN ショートカット)get_book_by_isbnが openBD 未収録の旧刊でも、ISBN ベースの安定 URL を持つ出版社(O'Reilly の/books/{isbn}/)の詳細ページを直接取得して書誌を回収(電子書籍専売・販売終了タイトルの部分救済。価格は取得不可)
Changed
search_booksは「該当なし」を空配列で返すようになり、検索サイトが該当なし時に返す無関係な新着フォールバックを除外(誤メタデータの混入を防止)- 書名の一致をトークン分割×包含割合で評価し、純日本語の部分一致(助詞を跨ぐ部分語)を拾えるよう改善
- 検索結果の著者を search / detail / isbn の全経路で重複排除(表記ゆれも同一視)
- 出版社の検索 API が著者を返さない場合でも、ISBN があれば openBD から
authorsを補完 - 横断検索を並列度6・1社あたり12秒タイムアウトで高速化/静音化し、小規模サイトはカタログを長期キャッシュ(大規模出版社を優先)
Fixed
- EUC-JP レスポンスをデコードし、ラトルズ・ボーンデジタルの検索結果が常に 0 件になる問題を修正(非 UTF-8 レスポンス全般に対応)
Security
- 依存を最新メジャーへ更新し、SDK 経由の推移的脆弱性 5 件を解消
Full Changelog: v0.2.4...v0.3.0
[0.2.4] - 2026-04-19
Added
- 日科技連出版社 (
juse-p) アダプターを追加 - Google Books アダプター (
google-books) を追加(APIキー未設定時は無効化) techbook-mcp setupコマンドを追加: Google Books API キーを対話入力し OS 固有の設定ディレクトリに保存- Linux:
$XDG_CONFIG_HOME/techbook-mcp/credentials.json - macOS:
~/Library/Application Support/techbook-mcp/credentials.json - Windows:
%APPDATA%\techbook-mcp\credentials.json
- Linux:
- ISBN出版者記号から出版社アダプターを特定するマッピング (
PUBLISHER_ISBN_CODES) を追加(13出版社) get_book_by_isbnが openBD の storelink に加え、ISBN出版者記号からも対応アダプターを特定して出版社サイトから直接取得を試みるよう改善
Full Changelog: v0.2.3...v0.2.4
[0.2.3] - 2026-04-13
Added
get_book_by_isbnツールを追加(ISBNから書誌情報を取得)- openBD にない書籍のフォールバックとしてカーリル API を追加
Fixed
getDetail()の著者取得を自己紹介文ではなくitemprop="author"から取得するよう修正binエントリの./プレフィックスを修正
Full Changelog: v0.2.2...v0.2.3
[0.2.2] - 2026-04-12
[0.2.1] - 2026-04-12
Fixed
- 達人出版会アダプターの検索が常に無関係な書籍を返す問題を修正(
?search=パラメータがサーバーで無視されていたため、全書籍一覧からローカルフィルタリングする方式に変更)
Full Changelog: v0.2.0...v0.2.1