building-agentic-ai (sinanuozdemir/building-agentic-ai) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 43 tools. No publisher has claimed this listing.

C
Warning
74/100

building-agentic-ai

Code repository for "Building Agentic AI" by Sinan Ozdemir. Practical examples, experiments, and implementations covering LLMs, embeddings, agents, RAG, fine-tuning, and optimization.

Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

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

sinanuozdemir

Source: github_code

Is this your MCP?

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.

// key findings
🚨
Secret credentials may flow to a network call
8 flows detected: HUBSPOT_API_KEY, RESEND_API_KEY. We can’t prove the destination matches the brand the credential belongs to.
🚨
Code appears obfuscated
1 file are unreadable to a human reviewer. Cannot audit what they do.
🔐
You'll be asked for 7 credentials: OPENROUTER_API_KEY, HUBSPOT_API_KEY, SERP_API_KEY, FIRECRAWL_API_KEY, SECRET_KEY, RESEND_API_KEY, GROQ_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes28 tools · 1 behind config

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.

add

Add two numbers

multiply

Multiply two numbers

google_something

Online Realtime Web Search

create_contact

Create a new contact in HubSpot CRM

fetch_contacts

Fetch contacts from HubSpot CRM with optional filters

update_contact

Update an existing contact in HubSpot CRM

attach_note_to_contact

Create a new note and attach it to a specific contact in HubSpot CRM

retrieve_all_notes_for_contact

Retrieve all notes associated with a specific contact from HubSpot CRM

web_search

Search the web for information using SerpApi. Returns top 3 search results with titles, snippets, and URLs.

scrape_website

Scrape a webpage using Firecrawl. Can return content in markdown format or extract links.

database_query_tool

Execute database queries, perform CRUD operations, and manage database schemas :param query: The SQL query to execute :param db: The database name to query :param query_type: Type of query ("select", "insert", "update", "delete", "create") :param limit: Maximum number of results to return :return: Q

google_spreadsheet_tool

Executes specified actions on the Google Spreadsheet.

serp_tool

Search the web for information using the Google Search Engine :param query: The query to search for. :return: The search result.

firecrawl_tool

Crawl webpages and return a markdown version of the html on the page :param website_url: The URL of the website to scrape return: The markdown version of the html on the page

ebay_price_tool

Check current eBay prices for items, get sold listings and average prices :param item_name: The name or description of the item to check :param condition: The condition of the item ("new", "used", "refurbished") :return: Current eBay price information and recent sold listings

python_repl_tool

Execute valid python code and returns the printed values in the code :param command: The Python command to run. Always end with a print statement to show the output like "print(output)" :return: The output of the code.

weather_forecast_tool

Get weather forecasts, current conditions, and weather alerts for locations :param location: The location to get weather for (city, coordinates, or address) :param days: Number of days to forecast (1-7) :param details: Level of detail ("basic", "detailed", "hourly") :return: Weather forecast informa

social_media_tool

Post content to social media platforms, manage posts, and get analytics :param platform: The platform to use ("twitter", "facebook", "instagram", "linkedin") :param action: The action to perform ("post", "schedule", "delete", "analytics") :param content: The content to post (for post/schedule action

crypto_and_nft_tool

Get current cryptocurrency prices and NFT prices around the world and for a specific wallet. :param query: The query to search for cryptocurrency or NFT prices. :return: The current cryptocurrency or NFT prices.

crm_contact_tool

Manage contacts in CRM system - add, search, update, delete contacts :param action: The action to perform ("add", "search", "update", "delete", "list") :Additional arguments based on action: - "add": Requires 'name', 'email', optional 'phone', 'company' - "search": Requires 'query' (name, email, or

pdf_document_tool

Process PDF and document files - extract text, merge, split, convert, generate :param action: The action to perform ("extract_text", "merge", "split", "convert", "generate") :param file_path: Path to the PDF/document file :Additional arguments based on action: - "extract_text": Optional 'pages' rang

translation_tool

Translate text between languages, detect language, and provide language information :param text: The text to translate :param target_language: The target language code (e.g., "es", "fr", "de") :param source_language: The source language code (auto-detect if not specified) :return: Translated text wi

file_storage_tool

Manage files in cloud storage - upload, download, delete, share, organize :param action: The action to perform ("upload", "download", "delete", "share", "list", "move") :param file_path: Path to the file in cloud storage :Additional arguments based on action: - "upload": Requires 'local_path', 'clou

email_sender_tool

Send emails through various email providers with attachments and formatting :param to: Recipient email address :param subject: Email subject line :param body: Email body content :param cc: CC recipients (optional) :param bcc: BCC recipients (optional) :param attachments: List of file paths to attach

calendar_scheduling_tool

Manage calendar events and scheduling - create, view, update, delete events :param action: The action to perform ("create", "view", "update", "delete", "find_available") :Additional arguments based on action: - "create": Requires 'title', 'date', 'time', optional 'duration', 'attendees' - "view": Re

send_email

Sends an email using Resend API. Args: to: List of recipient email addresses subject: Email subject line html: HTML content of the email from_address: Sender email address (defaults to account default) reply_to: List of reply-to email addresses cc: List of CC recipients bcc: List of BCC recipients t

web_crawler

Scrape a webpage using Firecrawl. Input format: 'URL|format' where format is 'markdown' (default) or 'links'. Example: 'https://example.com|markdown' and the result will be the entire website's content in markdown format

bm25_database_searchbehind config

Search the database using BM25 algorithm with keywords to find relevant policy information

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
🔐 secretOPENROUTER_API_KEYSet environment variables before starting Jupyter: export =your_key
🔐 secretHUBSPOT_API_KEY
🔐 secretSERP_API_KEY
🔐 secretFIRECRAWL_API_KEYFor web scraping
🔐 secretSECRET_KEY
configFLASK_DEBUG
🔐 secretRESEND_API_KEY
🔐 secretGROQ_API_KEYFor Groq API access
configCELERY_BROKER_URL
configCELERY_RESULT_BACKEND
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deployPORT
// quality suggestions

Tool 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

44/44 tools missing one or more hints — add (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); multiply (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); google_something (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +41 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.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tool test coverage

Only 2/44 tools referenced in tests (5%)

Write tests that reference each tool by name so every tool has at least one test.

Shell command execution

2 calls in production code run through a shell (reasoning_llms/computer_use/screenshot_app/main.js:55, reasoning_llms/computer_use/screenshot_app/main.js:106)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Readable source code

1 file are minified or bundled, which is usually build output rather than concealment

Ship unminified, readable source.

Secrets not logged

1 secret value sent to print

Redact or omit secret values from log output.

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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/sinanuozdemir/building-agentic-ai?variant=verified)](https://m8ven.ai/mcp/sinanuozdemir/building-agentic-ai)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 6c8bcadbc3d9b72f32d20367f40256d17a31adbf
code hash: e289149315db0c413c9512d5da04e7908a153b6b735d9b557d379e6ffd2d01f9
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client