{"name":"io.github.pixell-global/sayou","slug":"pixell-global-sayou","title":"sayou","description":"Persistent knowledge workspace for AI agents. Versioned files, search, and MCP tools.","url":"https://mcp.market/server/pixell-global-sayou","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":27,"stars":28,"forks":1,"downloads_week":26,"last_push_at":"2026-05-05T13:17:27.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/pixell-global/sayou","website":null,"version":"0.2.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"sayou","version":"0.2.2","transport":{"type":"stdio"}}],"tools":[{"name":"workspace_chunks","description":"Get chunk outline for a file: headings, line ranges, token estimates. Pass chunk_index to read a specific chunk's content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_delete","description":"Delete a file from the workspace (soft-delete). The file's version history is preserved.","write_action":true,"price_micros":0,"input_schema":null},{"name":"workspace_glob","description":"Find files matching a glob pattern. Supports: ** (any path depth), * (any name), ? (single char). Examples: **/*.md, research/**, clients/*/profile.md","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_grep","description":"Search file contents for a text query. Returns matching lines with surrounding context. Optionally filter by glob path_pattern (e.g., **/*.md). Like grep but for workspace files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_history","description":"Get version history for a file. Returns all versions with timestamps, sizes, and content hashes. Pass version_a and version_b to compare two versions — returns a unified diff showing additions (+) and removals (-).","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_kv","description":"Key-value store for configuration, caches, and temporary data. Actions: get (retrieve by key), set (store value with optional TTL), list (browse keys by prefix), delete (remove key). Values are stored as JSON strings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_links","description":"Get outgoing and incoming links for a file. To add a link, pass add_target with the target file path. Link types: reference, parent, depends_on, related, supersedes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_list","description":"List files and subfolders in a workspace folder. Returns an auto-generated index table with frontmatter columns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_read","description":"Read a file from the workspace. Returns the latest version content with frontmatter metadata. Use token_budget to control output size. Optionally specify a version number to read a specific historical version. Use line_start/line_end to read a specific line range (1-indexed, inclusive) — useful after reading a summarized file to drill into specific sections.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_search","description":"Search files by frontmatter metadata filters and/or full-text query. Filters match exact frontmatter values. Query searches file paths and frontmatter text. Set chunk_level=true for section-level precision instead of whole-file matches.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_semantic_search","description":"Search files by meaning using vector embeddings. Returns the most similar files ranked by relevance. Best for finding conceptually related content when you don't know exact keywords.","write_action":false,"price_micros":0,"input_schema":null},{"name":"workspace_write","description":"Write a file to the workspace. Creates the file if it doesn't exist, or creates a new version if it does. Content can include YAML frontmatter for structured metadata. For binary files, pass base64-encoded content and set content_type (e.g., image/png).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-28T14:26:34.050Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-28T14:26:34.007Z","components":{"code":{"score":20,"max":25,"notes":["77 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":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":8,"max":15,"notes":["last push 146 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"sayou-0.2.2/agent/sandbox/manager.py: …esult = subprocess.run({repr(command)}, shell=True, capture_output=True, text=True, timeou…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"sayou","version":"0.2.2","found":true,"weeklyDownloads":26,"license":"Apache-2.0","dependencyCount":37,"publishedAt":"2026-02-22T11:45:47.583105Z","repositoryUrl":"https://github.com/pixell-global/sayou"}],"repo":{"found":true,"owner":"pixell-global","repo":"sayou","archived":false,"pushedAt":"2026-05-05T13:17:27Z","stars":28,"forks":1,"openIssues":3,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/139949133?v=4","ownerCreatedAt":"2023-07-19T06:22:07Z","license":"Apache-2.0"},"icon":{"url":null,"source":"none"},"presence":{"stars":28,"forks":1,"downloadsWeek":26,"license":"Apache-2.0","lastPushAt":"2026-05-05T13:17:27.000Z","score":27}}}},"grade_history":[],"reviews":[]}