cdtm-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cdtm-mcp find CDTM people into agentic AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cdtm-mcp
An MCP server for the CDTM Community Portal, so you can search CDTM students and alumni from Claude Code, Claude Desktop, or any other MCP client.
Instead of clicking through filter dropdowns, you just ask:
"find me CDTM people building AI agents who can help with fundraising"
and Claude figures out the right tags, queries the portal, and gives you names, headlines, and profile links.
Why I built this
Hi, I'm Hamza (Fall 2017, co-founder at ZenML). The community portal is genuinely useful — a few thousand people with skills, interests, and "can support with" tags — but I never remember to open it. I do live in Claude Code all day, so I wired the portal into it as an MCP server. Now finding "alumni in Munich who know venture capital and offer mentoring" is one sentence away, and Claude can cross-reference results with whatever else I'm working on.
If you find this useful, give it a star ⭐ — if enough people do, I'll ask the CDTM team for a proper way to integrate this into the internal app (API tokens instead of the cookie dance below).
Related MCP server: Crosmos MCP Server
Setup
You need Python 3.10+ and uv (or plain pip).
git clone https://github.com/htahir1/cdtm-mcp.git
cd cdtm-mcpGetting your session cookie
The portal sits behind oauth2-proxy, and there's no public API or token system (yet — see the star pitch above). So the server authenticates with your own browser session cookie:
Log in to internal.cdtm.com in your browser.
Open DevTools (F12) → Network tab → reload the page.
Click any request to internal.cdtm.com → Headers → find the
Cookierequest header.Copy the part that starts with
_HOST-oauth2-proxy=(it's long).Create a
.envfile in the repo root:
CDTM_COOKIE='_HOST-oauth2-proxy=<paste the value here>'The cookie expires after a while. When the tools start failing with an auth error, repeat the steps. .env is gitignored — keep it that way, this cookie is your login.
Registering with Claude Code
claude mcp add --scope user cdtm -- uv run --directory /path/to/cdtm-mcp python server.pyThat's it. Open a new Claude Code session and ask it something.
For Claude Desktop, add the equivalent command to your claude_desktop_config.json.
What it can do
Tool | What it does |
| Filter by name, skills, interests, "can support with", "looking for", companies, education, class, location. Paginated. |
| Browse the portal's tag taxonomy (110 skills, 134 interests, ~3000 companies, ...) |
| Full profile for one person: bio, tags, contact email |
| Re-fetch the tag list if it looks stale |
Example prompts that work well:
"find CDTM people into agentic AI"
"who from the Fall 2017 class is in Berlin?"
"alumni who can support with pitch feedback and know climate tech"
"pull the full profile for the person I just found"
How it works
Nothing fancy. The portal is a Next.js app whose search runs through its own JSON endpoint (/api/protected/directory?skills=414&interests=62&q=...). This server:
pulls the tag taxonomy (names → IDs) out of the
/homepage payload once per sessionresolves the human-readable tag names Claude picks into IDs
calls the directory endpoint and returns clean JSON
parses profile pages server-side for
get_member_profile
No scraping of anything you couldn't see in your own browser, no data stored anywhere.
A note on being a good citizen
This reads member-provided data through your own authenticated session. It's for finding people to talk to — not for bulk-exporting the directory or spamming anyone. Don't be that person.
This is an unofficial community project and isn't affiliated with the CDTM team. If they have any concerns about it, or want to talk about a proper API, I'm happy to hear from them.
Available Tools
5 toolsget_member_profileA
Fetch a member's full profile page. profile is a profile URL or the
UUID from search results (e.g. '46b84902-3656-41a0-b153-a03ad211436b').
Returns the page's text content (bio, tags, links, etc.).
Inputs: profile (required). Returns: result
list_tag_categoriesA
List the filter categories available on the CDTM portal and how many options each has. Use list_tags(category) to see the options.
Inputs: no named parameters. Returns: result
list_tagsA
List available tag names for a filter category, optionally filtered by a case-insensitive substring.
Categories: skills, interests, supports ("Can Support With"), searching ("Looking For"), companies, education, cohorts (class, e.g. "Fall 2017"), locations.
Inputs: category (required), contains. Returns: result
refresh_taxonomyA
Re-fetch the filter taxonomy from the portal (use if tags seem stale).
Inputs: no named parameters. Returns: result
search_membersA
Search CDTM community members (students + alumni).
All tag arguments take human-readable names (e.g. skills=["Machine Learning", "Agentic AI"]) which are resolved against the portal's taxonomy — use list_tags() first if unsure of exact naming. Combining filters narrows the search. Returns member cards (id, name, headline, location, cohort, tags, profile_url) plus totalCount/totalPages; pass page=2 etc. to paginate.
Inputs: name, page, skills, cohorts, +6 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: listing categories, listing tags, searching members, fetching profiles, and refreshing taxonomy. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern: list_tag_categories, list_tags, search_members, get_member_profile, refresh_taxonomy. The style is uniform and predictable.
Five tools is well-scoped for a community directory. Each tool serves a necessary function without redundancy or bloat.
The set covers browsing taxonomy, searching members, and fetching detailed profiles. The read-only nature of the domain is fully supported, with no obvious gaps.
Maintenance
Related MCP Connectors
Public MCP server for discovering open jobs. Search, filter, and get application links.
MCP server for Product Management
MCP server for VC pitch-deck scoring, thesis-fit matching, and deal-flow management.
Related MCP Servers
- -

Crosmos MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceMCP server for the Crosmos memory layer, enabling semantic, keyword, and graph retrieval of memories, as well as storing content with automatic entity and relation extraction.13 npm2MIT- AlicenseAqualityBmaintenanceMCP server that searches, scores, and ranks GitHub developers for technical recruiting.89Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that provides access to the German Bundestag's parliamentary documentation system (DIP API).1MIT