{"name":"io.github.nh4ttruong/secobserve-mcp","slug":"nh4ttruong-secobserve-mcp","title":null,"description":"MCP server for SecObserve: triage findings, import scan reports and SBOMs, generate VEX.","url":"https://mcp.market/server/nh4ttruong-secobserve-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":28,"stars":1,"forks":0,"downloads_week":87,"last_push_at":"2026-09-25T08:55:49.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/nh4ttruong/secobserve-mcp","website":null,"version":"1.0.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"secobserve-mcp","version":"1.0.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"SecObserve base URL without /api, e.g. https://secobserve.example.com","isRequired":true,"name":"SECOBSERVE_BASE_URL"},{"description":"SecObserve user or product API token","isRequired":true,"isSecret":true,"name":"SECOBSERVE_API_TOKEN"},{"description":"Set to true to refuse every write operation","name":"SECOBSERVE_READ_ONLY"},{"description":"Set to true to enable the delete tool; deletion cascades and is irreversible","name":"SECOBSERVE_ALLOW_DELETE"}]},{"registryType":"oci","identifier":"ghcr.io/nh4ttruong/secobserve-mcp:1.0.0","runtimeHint":"docker","transport":{"type":"stdio"},"runtimeArguments":[{"value":"--rm","type":"positional","valueHint":"--rm"},{"value":"-i","type":"positional","valueHint":"-i"}],"packageArguments":[{"value":"--transport","type":"positional","valueHint":"--transport"},{"value":"stdio","type":"positional","valueHint":"stdio"}],"environmentVariables":[{"description":"SecObserve base URL without /api, e.g. https://secobserve.example.com","isRequired":true,"name":"SECOBSERVE_BASE_URL"},{"description":"SecObserve user or product API token","isRequired":true,"isSecret":true,"name":"SECOBSERVE_API_TOKEN"},{"description":"Set to true to refuse every write operation","name":"SECOBSERVE_READ_ONLY"},{"description":"Set to true to enable the delete tool; deletion cascades and is irreversible","name":"SECOBSERVE_ALLOW_DELETE"}]}],"tools":[{"name":"_print_config","description":"Print a registration snippet for one MCP client.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_api_import","description":"Pull findings into SecObserve from an upstream API it already has credentials for.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_approve_observation_log","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_assess_observation","description":"Record a human assessment on one observation: change its severity, status, priority or VEX justification.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_bulk_assess_observations","description":"Apply one identical assessment to up to 250 observations by id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_call_action","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_create","description":"Create a record in SecObserve (product, branch, service, rule, policy, member, ...).","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_delete","description":"Permanently delete a SecObserve record. Deletion cascades and cannot be undone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_describe_resource","description":"Read the deployed instance's OpenAPI schema for one resource: filters, fields, enums.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_get","description":"Fetch one SecObserve record by id, with all its fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_list","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_list_resources","description":"List every SecObserve resource this server can reach, with its verbs and named actions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_product_metrics","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_run_periodic_task","description":"Trigger one of SecObserve's scheduled background jobs now, or list which jobs exist.","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_status","description":"Read instance-level facts: version, health, public settings, queue statistics, PURL types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"secobserve_trigger_scan","description":"Run SecObserve's own OSV or VulnerableCode scan over a product's known components.","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_update","description":"Change fields of an existing SecObserve record.","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_upload_file","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"secobserve_vex_document","description":"","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-10-03T05:45:44.625Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-03T05:45:44.589Z","components":{"code":{"score":25,"max":25,"notes":["24 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"secobserve-mcp","version":"1.0.0","found":true,"weeklyDownloads":87,"license":"MIT","dependencyCount":9,"publishedAt":"2026-09-21T08:40:32.060842Z","repositoryUrl":"https://github.com/nh4ttruong/secobserve-mcp"}],"repo":{"found":true,"owner":"nh4ttruong","repo":"secobserve-mcp","archived":false,"pushedAt":"2026-09-25T08:55:49Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/61237126?v=4","ownerCreatedAt":"2020-02-19T13:19:22Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/61237126?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":0,"downloadsWeek":87,"license":"MIT","lastPushAt":"2026-09-25T08:55:49.000Z","score":28}}}},"grade_history":[],"reviews":[]}