Data Collection
noticed.so
An MCP server for searching, resolving, and retrieving detailed professional profiles and relationship context about people in a developer network.
ENDPOINT 1
https://mcp.noticed.so/api/mcp
MCP server metadata
- Name
- so.noticed/mcp
- Version
- 2.0.0
noticed gives you a professional social memory, scoped to your bearer token. it remembers everyone in your network — who they are, and your history with each one. (call `get_instructions` anytime to re-read this) what you can do: search your network and open anyone's full record, add new people and keep their notes and tags current, log interactions as they happen, and save and recall long-term memory. tips: • for questions about what noticed is, product terminology, company facts, or how the noticed agent should speak, read the matching canonical noticed resource exposed by `resources/list` and `resources/read`; do not infer those facts from tool names. • "who is X?" (a name from a voice note, capture, or mention) → `resolve_person` — deterministic, handles misspellings, says when it's ambiguous. start `search_people` for everything else: free text for names/companies/keywords; for roles/functions (founder, engineer, investor, …) use the `role` filter — combine with `location` for "X in <place>". free text misses title variants ('Founding Partner') and over-matches bios and notes. • a `resolve_person` 'none'/'ambiguous' (or a wrong match) is NOT proof the person is absent — names get misheard. Before you conclude "they're not in your network" or `add_to_network` a new contact, run a plain `search_people` on the name (and any company). `add_to_network` also guards: if a new `free_form` contact strongly matches someone you already have, it returns `potential_duplicates` + a `confirmation_token` instead of creating — track the existing person, or pass the token back only if it's genuinely someone new. • free-text terms are OR-matched (broadens); to narrow, put `AND` between terms to require all (`health AND medtech`) or prefix a term with `+` to require just it (`+rust berlin`). • counting: `network_summary` for overall size and per-source breakdowns; for "how many <role/type>…" use `search_people` with structured filters (role/company/location/tags) and report its `total` — do not manually reclassify or subtract returned people; if free text was used anyway, present `strong_total` (rows matching ALL terms), never the broad `total`. • "who did I add recently / since <date>?" → `added_after`/`added_before` (when they entered the network). adding ≠ interacting: `recent`/`stale` are coarse buckets. For "who did I interact with on/since <date>" or "everyone with a touchpoint this week" → `last_interaction_after`/`last_interaction_before` (exact interaction-date bounds; people with no interaction are excluded). • on a TEAM? `account_status` lists your teams (with their ids). Pass `scope:'team'` (and a team id when you're in more than one) to `search_people`, `get_person`, `network_summary`, and `list_actions` to reach the POOLED team network — people ANY teammate knows. Team results carry `team_members` (who on the team knows them + their strength); `list_actions scope:'team'` attributes consent-gated open actions to their owner; a full-consent teammate's notes/actions surface via `get_person scope:'team'`. Notes and other writes stay private to you; `create_action` is the deliberate exception and can assign Team work against a Team-visible relationship. • `enrich_person` defaults to a conservative, bounded LinkedIn lookup for an own or fully shared Team person; a confirmed profile can attach automatically, while ambiguous or blocked candidates do not. `mode:'research'` opens an agent-led session instead: call `get_person` for context, make up to six focused `search_enrichment_web` calls with the returned attempt_id, then `submit_enrichment_research` with one retrieved LinkedIn URL or no URL to abstain. The server checks stored retrieval and the same deterministic attachment safeguards; weaker evidence is only a proposal, not an accepted identity. For a new contact pass new_person; name-only research also needs a stable client_request_id to prevent duplicate people. Duplicate candidates require the returned confirmation_token. For a 25- or 35-person opportunity batch, pass the List id as batch_id and call `enrichment_batch_status` before resuming. Do not repeat completed paid work. • a structured-filter zero usually means thin data, not "you know no one" — fall back to free text. • dossiers from `get_person` are present-tense snapshots; an empty field means not recorded, not "no". for career history / past roles / education, call `get_person` with `include:'extras'`. • check `account_status` if results look empty — sources may not be imported yet. • `log_interaction` appends every call; everything else is safe to repeat. • actions are follow-ups tied to a person. when using `create_action`, it is recommended to include both `assigned_to` and `remind_at` whenever ownership and timing are known; in Team context pass `team_id` so the action can be created for any teammate. neither recommendation is required. for ONE person's actions read get_person → relationship.actions; for EVERYONE's open actions in one shot ("what are all my to-dos?") use `list_actions` instead of paging get_person per person. pass `goal_id` to keep only actions for confirmed people in a Goal (a Team sweep needs that Team's Goal), or undated:true for just the open-ended ones. close one with `complete_action` when the follow-up actually happened; `delete_action` PERMANENTLY removes one that shouldn't exist (a mistake or duplicate) — it does not fake a completion, so never use it for something you actually did. • scheduled tasks run the same prompt repeatedly, opening a fresh noticed chat for each occurrence. use `create_scheduled_task`, then list, pause/resume, update, or delete it with the matching direct tools. in-chat reminders belong to the originating noticed chat and are created by the noticed agent there, not by this headless connector. • someone offers an intro ("I can connect you to…")? `track_intro` it — connector, who, and what's still missing — so the offer doesn't evaporate. `list_intros` answers "what intros am I waiting on?"; when one lands, add the person and mark the intro done (resolved_person_id). • lists are named, described sets of people ("my seed investors", "design candidates"). `list_lists` to see them (and get a list_id), `get_list` to open one — members plus the people noticed is SUGGESTING to add or remove, with reasoning. `create_list` needs a SPECIFIC description: it's the goal noticed matches people against, so vague in, vague out. Update or delete lists, add/remove members, and accept/reject pending suggestions with the corresponding list tools. • Views are saved, live searches over a personal or Team network. `list_views` discovers them; `get_view` executes one against current data. Create, update, or delete a View by its id or unambiguous name. Lists and Views can expose general access (`set_general_access`) or a stable public page (`set_published`); these tools do not manage invitations, collaborator grants, or comments. • keep replies at the user's altitude: their people, numbers, and history — never tool names, parameters, scopes, data plumbing, or database language such as "canonical record", "identity match flag", "thin/fresh record", or "override token". Say "the combined person", "a possible duplicate", or simply that noticed can or cannot confirm the change in chat. • drafting anything outbound on the user's behalf (a follow-up, an intro request, a post)? call `get_voice_rules` first and apply it strictly — it is the single source for the user's writing voice. • new user, or "set me up" / "onboard me"? run a short interview (the `onboard` skill if installed) and persist everything with ONE `save_onboarding` call — identity, goals, value ranking, current tools. calling it again appends a new dated identity note while deduplicating long-term memories.
Known tools 64
get_instructionsReturns this connector's instructions — what noticed is and how to use it.
Inferred read-onlyresolve_personDeterministically resolve a (possibly misheard) name — optionally with a company hint — to ONE person in the network.
Inferred read-onlyget_personOne person's full record: profile (including github_login and github_url when known; team records use githubHandle and githubUrl), current role, and your relationship context (notes, tags, last interaction, added_at = when they entered your network) by default; pass include:'extras' or 'all' for work history, education, and repos.
Inferred read-onlymy_profileYour own developer profile as noticed sees it — GitHub + LinkedIn + derived tags.
Inferred read-onlynetwork_summaryLightweight overview of your network — total people, breakdowns by source/company, recent vs stale — without paging through search.
Inferred read-onlyupdate_personUpdate your notes, tags, custom_name, relationship_type, or the person's companies / role / emails / phones.
Potential side effectslog_interactionRecord a touchpoint — say WHAT it was with `type`: 'in_person', 'call', or 'message'.
Potential side effectscreate_actionCreate a follow-up tied to a person — a to-do for the relationship (e.g.
Potential side effectsupdate_actionEdit an existing action — change its text, its remind-me date, or mark it done/undone.
Potential side effectslist_actionsEvery OPEN follow-up / action across your WHOLE network in one call, each attached to the person it belongs to — ordered like /home (soonest remind_at first, undated last).
Inferred read-onlydelete_actionPERMANENTLY delete an action that should NOT exist — created by mistake, a duplicate, or no longer relevant.
Potential side effectstrack_introTrack a promised introduction — someone offered to connect the user with a person they haven't met yet.
Inferred read-onlylist_introsThe user's pending introductions — who offered, who they'll be connected to, and where each stands (waiting/ready/requested/done/dropped).
Inferred read-onlysuggest_identity_matchMerge two records in your network that are the SAME person — e.g.
Inferred read-onlyaccept_identity_matchAccept a PENDING identity match — merge the two records into one.
Inferred read-onlydismiss_identity_matchDismiss a PENDING identity match so it stops surfacing — a SOFT reject.
Inferred read-onlylist_profile_gapsList the contacts in your network that are MISSING a profile — email-only people with no LinkedIn or GitHub attached (and no pending merge).
Potential side effectsadd_profile_to_personGive noticed a LinkedIn or GitHub URL for a contact missing a profile (an email-only person from list_profile_gaps).
Potential side effectsenrich_personEnrich a person in your noticed network with missing or updated professional details.
Inferred read-onlyenrichment_batch_statusRead resumable, per-person enrichment outcomes for a 1–35-person opportunity batch before repeating any paid work.
Inferred read-onlysearch_enrichment_webRun one bounded public search inside an active enrich_person research session.
Inferred read-onlysubmit_enrichment_researchSubmit one retrieved LinkedIn candidate, or abstain, with up to six cited role/company/location/website/bio observations.
Inferred read-onlymove_profile_to_personMove one identifier (an email, LinkedIn, GitHub, X, or phone) off the record it's wrongly attached to and onto the person it really belongs to.
Potential side effectslist_identity_matchesList the cross-source identity matches in your network, newest first — when each happened, the two identities that were linked (with their sources), the confidence, the reason, and the status (merged, pending review, or marked as different people).
Inferred read-onlylist_listsThe user's lists (personal + team), each with its description, how many people are on it, and how many suggestions are waiting for a decision.
Inferred read-onlyconfigure_list_reviewConfigure a list's review question/context before human answers begin.
Inferred read-onlyget_list_reviewsRead only the authenticated user's latest Yes/No/Not sure answers and optional reasons, question/context, and accurate counts for current members.
Inferred read-onlyget_listOpen one list: relevance-ranked members, pending suggestions and rejected_person_ids.
Inferred read-onlyupdate_listRename a list, change the specific goal noticed matches suggestions against, or enable/disable AI suggestions.
Inferred read-onlylist_viewsList visible personal and Team Views, including each saved definition and effective access role.
Inferred read-onlyget_viewOpen a saved View and execute it against the live personal or Team network.
Potential side effectsset_general_accessAfter user confirmation, set a List or View to restricted, Team-visible, or anyone-with-link access.
Inferred read-onlymemory_searchSearch your long-term memory (facts, decisions, preferences, commitments).
Inferred read-onlymemory_saveSave a durable fact/preference/decision/commitment to long-term memory.
Inferred read-onlyadd_memorySave a MEMORY about a SPECIFIC person — something YOU worked out on your own, unprompted, that the user never told you (a pattern you spotted, a fact you inferred from their calendar or email).
Potential side effectsget_voice_rulesThe canonical writing-voice rules for any text drafted on the user's behalf (outbound messages, intros, follow-ups, posts).
Inferred read-onlyaccount_statusCheck connected accounts across the noticed browser extension and native iOS embedded-browser sessions.
Inferred read-onlyget_connected_source_statusInspect noticed integration sources, their safe account labels, GitHub handle and profile URL, connection state, effective sync cadence, and latest attempt or completion.
Inferred read-onlyget_connection_linkGet the exact noticed connection or management experience for an integration or MCP server.
Inferred read-onlysync_connected_sourceAfter explicit user confirmation, request a fresh import for one connected noticed source.
Inferred read-onlylist_scheduled_tasksList the user's noticed agent tasks, including timing, enabled state, next and last run, and run count.
Inferred read-onlydelete_scheduled_taskPermanently delete one noticed agent task and its run history.
Potential side effectssave_onboardingSave the user's onboarding interview answers into noticed in ONE call (use after the `onboard` skill's questionnaire, or whenever the user shares who they are and what they want).
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.so-noticed-mcp]
url = "https://mcp.noticed.so/api/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"so-noticed-mcp": {
"type": "http",
"url": "https://mcp.noticed.so/api/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: so-noticed-mcp
Remote MCP URL: https://mcp.noticed.so/api/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"so-noticed-mcp": {
"url": "https://mcp.noticed.so/api/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"so-noticed-mcp": {
"type": "http",
"url": "https://mcp.noticed.so/api/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "so-noticed-mcp",
"transport": "streamable-http",
"url": "https://mcp.noticed.so/api/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 2
https://mcp.noticed.so/api/sandbox/mcp
Known tools 0
No tool metadata was available in the registry cache.
CONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.noticed-so]
url = "https://mcp.noticed.so/api/sandbox/mcp"
enabled = true
bearer_token_env_var = "MCP_BEARER_TOKEN"
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Code
.mcp.json
{
"mcpServers": {
"noticed-so": {
"type": "http",
"url": "https://mcp.noticed.so/api/sandbox/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Desktop
Settings → Connectors → Add custom connector
Name: noticed-so
Remote MCP URL: https://mcp.noticed.so/api/sandbox/mcp
Add the URL as a custom connector, then complete its supported authorization flow. Claude Desktop remote connectors are configured in the UI.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"noticed-so": {
"url": "https://mcp.noticed.so/api/sandbox/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Visual Studio Code
.vscode/mcp.json
{
"servers": {
"noticed-so": {
"type": "http",
"url": "https://mcp.noticed.so/api/sandbox/mcp",
"headers": {
"Authorization": "Bearer ${input:mcp-token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "mcp-token",
"description": "noticed-so bearer token",
"password": true
}
]
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Generic MCP
Client-specific MCP configuration
{
"name": "noticed-so",
"transport": "streamable-http",
"url": "https://mcp.noticed.so/api/sandbox/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.