ai-agent-book (chemark/ai-agent-book) is an MCP server listed on the M8ven Trust Index. It scores 54 out of 100, grade D. It declares 200 tools. No publisher has claimed this listing.
深入理解 AI Agent:设计原理与工程实践(学习副本,upstream: bojieli/ai-agent-book)
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
chemark
Source: github_code
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
handle_call_toolHandle tool execution.
browser_navigateNavigate to a URL in the browser
browser_clickClick an element on the page by its index
browser_typeType text into an input field
browser_get_stateGet the current state of the page including all interactive elements
browser_extract_contentExtract structured content from the current page based on a query
browser_scrollScroll the page
browser_go_backGo back to the previous page
browser_list_tabsList all open tabs
browser_switch_tabSwitch to a different tab
browser_close_tabClose a tab
retry_with_browser_use_agentRetry a task using the browser-use agent. Only use this as a last resort if you fail to interact with a page multiple times.
browser_list_sessionsList all active browser sessions with their details and last activity time
browser_close_sessionClose a specific browser session by its ID
browser_close_allClose all active browser sessions and clean up resources
mcp_transcribe_audioTranscribe the given audio in a list of filepaths or urls.
get_browser_capabilitiesGet information about browser automation capabilities and configuration.
browser_usePerform browser automation tasks using the browser-use package. This tool provides comprehensive browser automation capabilities including: - Web scraping and content extraction - Form submission and automated interactions - File downloads and media handling …
complete_browser_taskUse browser to visit a web page, extract content, and optionally download files/images, ... Returns a dict with execution trace, answer (extracted content), and downloaded file/image paths.
e2b_upload_fileUpload local file to e2b sandbox.
e2b_run_codeRun code in a specified e2b sandbox.
hello_worldSay hello to the world.
mcp_image_recognitionSolve the question by careful reasoning given the image(s) in given local filepath or url, including reasoning, ocr, etc.
read_url提取并将网页内容转换为清晰、可读的markdown格式。非常适合阅读文章、文档、博客文章或任何网页内容。当您需要分析网站的文本内容、绕过付费墙或获取结构化数据时,请使用此工具。
file_writeWrite content to a file with automatic syntax verification
file_editEdit an existing file by searching and replacing content
code_interpreterExecute code in multiple programming languages in a sandboxed environment with result analysis. Supports: Python, JavaScript, TypeScript, Go, Java, C++, Rust, PHP, Bash
virtual_terminalExecute shell commands with error summarization
google_calendar_addAdd an event to Google Calendar
github_create_prCreate a GitHub Pull Request
mcpmcp_browser_navigateNavigate to a URL in the virtual browser
mcp_browser_get_contentGet content from the current browser page
mcp_browser_execute_taskExecute a high-level browser task using AI agent
mcp_browser_screenshotTake a screenshot of the current browser page
mcp_browser_list_tabsList all open browser tabs
mcp_send_emailSend an email notification
mcp_send_telegram_messageSend a Telegram message
mcp_send_slack_messageSend a Slack message via webhook
mcp_send_discord_messageSend a Discord message via webhook
mcp_request_admin_approvalRequest approval from a human administrator
mcp_request_admin_inputRequest input from a human administrator
mcp_respond_to_requestRespond to an admin approval request (admin use)
mcp_list_pending_requestsList all pending admin approval requests
mcp_set_timerSet a timer that will notify when completed
mcp_set_recurring_timerSet a recurring timer that repeats at intervals
mcp_cancel_timerCancel an active timer
mcp_list_timersList all timers, optionally filtered by status
mcp_get_timer_statusGet status of a specific timer
mcp_chess_new_gameStart a new chess game
mcp_chess_load_fenLoad a chess position from FEN notation
mcp_chess_make_moveMake a move on the chess board
mcp_chess_get_legal_movesGet all legal moves in the current position
mcp_chess_get_board_stateGet the current chess board state
mcp_chess_get_game_statusGet the current game status (checkmate, stalemate, etc.)
mcp_chess_undo_moveUndo the last move
mcp_chess_get_move_historyGet the history of moves played
mcp_chess_reset_boardReset the chess board to starting position
mcp_excel_readRead data from Excel file
mcp_excel_writeWrite data to Excel file
mcp_excel_create_workbookCreate a new Excel workbook
mcp_excel_create_worksheetCreate a new worksheet in Excel
mcp_excel_apply_formulaApply formula to Excel cell
mcp_excel_get_metadataGet Excel file metadata
mcp_excel_screenshotCreate screenshot of Excel file
mcp_intelligence_generate_codeGenerate Python code based on task description
mcp_intelligence_thinkPerform complex problem reasoning with step-by-step thinking
mcp_intelligence_guardGuard and validate a proposed action for safety
mcp_spawn_subagentSpawn a sub-agent to handle a delegated task. Supports sync (waits and returns result) and async (returns a task_id immediately) modes, and two context-passing strategies: 'minimal' or 'llm_generated'.
mcp_send_message_to_subagentSend a follow-up message to an existing sub-agent and get its reply
mcp_cancel_subagentCancel a sub-agent (cancels the background task for async sub-agents)
mcp_get_subagent_statusGet the status and result of a sub-agent (useful for async sub-agents)
web_searchSearch the web using DuckDuckGo (free, no API key required)
downloadDownload a file from a URL to local storage
knowledge_base_searchSearch a local knowledge base directory
webpage_readerRead and extract content from a webpage
document_readerRead and extract content from documents (PDF, DOCX, PPTX)
image_parserParse and analyze image files
video_parserParse and extract metadata from video files
file_readerRead a file and return its contents
grepSearch for patterns in files (grep-like functionality)
text_summarizerSummarize long text content
weatherGet current weather information for a location (Open-Meteo, free, no API key)
stock_priceGet stock price and market information
currency_converterConvert between currencies
crypto_priceGet cryptocurrency price information (CoinGecko, free, no API key)
location_searchSearch for locations using Nominatim/OpenStreetMap (free, no API key)
poi_searchSearch for Points of Interest near a location using Overpass/OpenStreetMap (free, no API key)
wikipedia_searchSearch Wikipedia and get article summary
arxiv_searchSearch ArXiv for academic papers
wayback_searchSearch Wayback Machine for archived web pages
youtube_transcriptExtract transcript from a YouTube video
pubchem_searchSearch PubChem for chemical compounds
pubchem_propertiesGet detailed properties for a PubChem compound
pubchem_synonymsGet synonyms for a PubChem compound
pubchem_similarSearch for structurally similar compounds in PubChem
yfinance_quoteGet current stock quote and market data
yfinance_historicalGet historical stock price data
yfinance_company_infoGet comprehensive company information
yfinance_financialsGet financial statements (income statement, balance sheet, cash flow)
88 further tools are not listed here. The complete surface is in the source.
ANTHROPIC_API_KEYARK_API_KEYOPENAI_API_KEYOPENROUTER_API_KEYPLAYWRIGHT_PORTSILICONFLOW_API_KEYWEBSOCKET_PORTWS_PATHBROWSER_USE_LOGGING_LEVELBROWSER_USE_SETUP_LOGGINGAUDIO_LLM_API_KEYAUDIO_LLM_BASE_URLAUDIO_LLM_MODEL_NAMELLM_MODEL_NAMELLM_API_KEYLLM_BASE_URLCOOKIES_FILE_PATHE2B_API_KEYIMAGE_LLM_API_KEYIMAGE_LLM_BASE_URLIMAGE_LLM_MODEL_NAMETAVILY_API_KEYPIC_SEARCH_URLPIC_SEARCH_SEARCHMODEPIC_SEARCH_SOURCEPIC_SEARCH_DOMAINPIC_SEARCH_UIDLLM_PROVIDERLLM_MODELENABLE_MCP_TOOLSAGENT_HOSTMOONSHOT_API_KEYDEEPSEEK_API_KEYZHIPU_API_KEYKIMI_API_KEYNO_COLORCHAT_MODELOPENAI_BASE_URLGLOBAL_LOG_LEVELGOOGLE_API_KEYGOOGLE_CSE_IDCHROME_DRIVER_PATHPIC_SEARCH_TOTAL_NUMPIC_SEARCH_SLICE_NUMJINA_API_KEYBROWSERUSE_LLM_BASE_URLBROWSERUSE_LLM_MODEL_NAMEBROWSERUSE_LLM_API_KEYDATALAB_API_KEYCODE_LLM_BASE_URLCODE_LLM_MODEL_NAMECODE_LLM_API_KEYTHINK_LLM_BASE_URLTHINK_LLM_MODEL_NAMETHINK_LLM_API_KEYGUARD_LLM_BASE_URLGUARD_LLM_MODEL_NAMEGUARD_LLM_API_KEYVIDEO_LLM_BASE_URLVIDEO_LLM_MODEL_NAMEVIDEO_LLM_API_KEYAWORLD_SEARCH_URLAWORLD_SEARCH_SEARCHMODEAWORLD_SEARCH_SOURCEAWORLD_SEARCH_DOMAINAWORLD_SEARCH_UIDAWORLD_SEARCH_TOTAL_NUMAWORLD_SEARCH_SLICE_NUMLOG_FILE_PATHAUDIO_TASK_URLAUDIO_QUERY_URLAUDIO_APP_KEYAUDIO_SECRETAUDIO_SAMPLE_RATEAUDIO_AUDIO_FORMATAUDIO_TTS_VOICEAUDIO_TTS_SPEECH_RATEAUDIO_TTS_VOLUMEAUDIO_TTS_PITCHAUDIO_VOICE_TYPEAUDIO_RETRY_TIMESAUDIO_SLEEP_TIMEDASHSCOPE_API_KEYDASHSCOPE_SUBMIT_URLDASHSCOPE_QUERY_BASE_URLDASHSCOPE_MODELDASHSCOPE_SIZEDASHSCOPE_NDASHSCOPE_RETRY_TIMESDASHSCOPE_SLEEP_TIMEDASHSCOPE_VIDEO_SUBMIT_URLDASHSCOPE_VIDEO_MODELDASHSCOPE_VIDEO_SIZEDASHSCOPE_VIDEO_RETRY_TIMESDASHSCOPE_VIDEO_SLEEP_TIMELLM_TEMPERATUREFILESYSTEM_SERVER_WORKDIRGITHUB_MCP_COMMANDTCODE_LLM_MODEL_NAMETCODE_LLM_BASE_URLVIDEO_LLM_TEMPERATURECLUSTER_NAMEVNC_AUTHMCP_GATEWAY_REDIS_URLMCP_GATEWAY_TOKEN_SECRETTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
202/202 tools missing one or more hints — handle_call_tool (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); browser_navigate (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); browser_click (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +199 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
7 tools perform destructive updates without destructiveHint — mcp_transcribe_audio deletes at line 119 (os.unlink(file_path)); mcp_transcribe_audio deletes at line 114 (os.unlink(file_path)); mcpreaddocx deletes at line 545 (os.remove(md_file_path))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Descriptions match behaviour
6 tools describe read intent but their handlers mutate — mcp_transcribe_audio (line 119: os.unlink(file_path)); mcp_transcribe_audio (line 114: os.unlink(file_path)); mcpreadpdf (line 468: with open(img_path, "wb") as img_file:)
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool test coverage
125/202 tools referenced in tests (62%)
Write tests that reference each tool by name so every tool has at least one test.
Secrets not logged
39 secret values sent to logging.info/logger.info/print/logger.warning
Redact or omit secret values from log output.
Tool description accuracy
6 tools have description/behavior mismatches: mcp_transcribe_audio: description implies read-only but handler writes/deletes/executes; mcp_transcribe_audio: description implies read-only but handler writes/deletes/executes; mcpreadpdf: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/chemark/ai-agent-book)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check